반응형

 

오늘은 간단하게 주어진 경로가 폴더인지 파일인지 구분하는 방법을 소개해 드리겠습니다.

길게 설명할 것 없이 간단하게 코드나갑니다.

 

FileAttributes chkAtt = File.GetAttributes(_path);
if ((chkAtt & FileAttributes.Directory) == FileAttributes.Directory)
{
 // 디렉토리일 경우
}
else
{
 // 파일 일 경우
}

 

간단하죠 ?

이렇게 하면  _path 로 주어진 경로가 디렉토리인지 파일인지 구분할 수 있는데요. 폴더를 계속해서 탐색하는 기능을 만들때 유용하게 사용할 수 있답니다.

 

 

예를 들면 아래와 같은 방법으로 하위폴더의 모든 파일에 대한 액션을 할 수 있는 재귀 함수를 만들수 있는 것입니다.

private static void chkDir_recursive (string _path)
{

  FileAttributes chkatt = File.GetAttributes(_path);
  if ((chkatt & FileAttributes.Directory) == FileAttributes.Directory)
  {
    // is a Directories
    string[] tmpPath = Directory.GetDirectories(_path, "*");

    foreach (string s in tmpPath)
    {
    	chkDir_recursive(_path); // 폴더를 만나면 하위로 계속 탐색을 진행
    }

    string[] tmpFiles = Directory.GetFiles(_path, "*.*");

    foreach (string s in tmpFiles)
    {
    	chkDir_recursive(_path); // 파일을 만나도 동일한 함수로 실행 가능함
    }
  }
  else
  {    
    // 파일을 만나게 되면 실제 해야할 액션을 코딩한다

  }

}

 

간단하죠?

 

이상으로 주어진 경로가 폴더인지 파일인지 구분하는 방법을 소개해 드렸습니다~

2020/05/29 - [DEV/c#] - [C#] .net 프로그램에서 MD5 해시 체크파일 만들기

 

[C#] .net 프로그램에서 MD5 해시 체크파일 만들기

프로그래밍을 이용하여 파일을 생성하거나 이동시킬때 md5 와 같은 무결성 검증을 위한 해시체크 파일을 생성해야 할때가 있습니다. 물론 간단한 유틸리티를 내려받아 윈도우 쉘 명령어로 만드�

diy-dev-design.tistory.com

2020/01/03 - [DEV/c#] - [C#] C# APP 에서 엑셀 연동해보기

 

[C#] C# APP 에서 엑셀 연동해보기

엑셀에서 VBA 로 코드를 짜다 보면 막상 특정 엑셀 파일에만 VBA 가 적용이 가능하기 때문에 막상 다른 엑셀 파일에서 동일한 동작을 하려면 또 코드를 복사해 넣고 실행을 해야 하는 경우가 있습�

diy-dev-design.tistory.com

2019/06/21 - [DEV/c#] - [C#] C# .NET 프로젝트에서 ImageMagick 이용하기

 

[C#] C# .NET 프로젝트에서 ImageMagick 이용하기

이미지 관련된 툴을 개발함에 있어 다양한 이미지 포멧을 만들고 변경하기 위한 코어를 개발하는 것은 말도 안되게 힘든 작업입니다. 저는 디자이너라는 타이틀을 가지고 있기 때문에 포토샵이

diy-dev-design.tistory.com

2019/06/21 - [DEV/c#] - [C#] 마우스 매크로를 위한 마우스 자동 클릭 기능 만들기

 

[C#] 마우스 매크로를 위한 마우스 자동 클릭 기능 만들기

사용자의 마우스 컨트롤 없이 자동으로 지정된 위치에서 마우스를 클릭하게 만들어 주는 기능 입니다. 먼저 아래와 같이 DLL 을 불러들여 주어야 하겠습니다. class 정의 바로 아래부분에 넣어 주�

diy-dev-design.tistory.com

2019/06/21 - [DEV/c#] - [C#] Delay 기능

 

[C#] Delay 기능

c# .net 환경 개발시 아래의 함수를 이용하여 Delay 를 구현할 수 있습니다. private static DateTime Delay(int MS) { DateTime ThisMoment = DateTime.Now; TimeSpan duration = new TimeSpan(0, 0, 0, 0, MS);..

diy-dev-design.tistory.com

 

반응형

+ Recent posts