Programming/.NET

Directory는 디렉토리를 대상으로 생성, 삭제등의 작업을 수행하거나 디렉토리의 생성날짜와 같은 속성정보를 알 수 있는 클래스이며 DirectoryInfo는 특정 디렉토리에 대한 하위 파일 또는 디렉토리구조를 확인할 수 있는 클래스입니다.

 

일반적으로 디렉토리에 대한 생성이나 삭제는 Directory클래스의 정적 메소드를 이용하며

 

Directory.CreateDirectory("C:\\aaa");

디렉토리의 속성정보또한 정적메소드를 통해 확인할 수 있습니다.

 

Label1.Text = Directory.GetCreationTime("C:\\aaa").ToString();

DirectoryInfo를 통해 특정 디렉토리의 하위디렉토리 구조를 가져오려면 GetdIrectories메소드를 호출합니다.

 

DirectoryInfo di = new DirectoryInfo("C:\\");
foreach (System.IO.DirectoryInfo d in di.GetDirectories()) {
    TreeNode tn = new TreeNode(d.Name);
    treeView1.Nodes.Add(tn);
}

 

이 예제는 C 드라이브의 루트디렉토리 목록을 가져와 TreeView컨트롤에 추가하도록 합니다. 에제에서 사용된 GetDirectories 메소드는 필요한 디렉토리 목록을 가져오기 위해 실제 디렉토리 목록만큼의 배열을 할당하여 목록을 할당된 배열에 채워넣은 뒤 결과값을 반환합니다.

 

단순배열이므로 가져올 목록이 많으면 성능상 불이익이 발생될 수 있는데 이런 경우 EnumerateDirecotories 메소드를 사용할 수 있습니다. EnumerateDirecotories 메소드는 List형식의 열거형을 반환합니다.

 

foreach (DirectoryInfo d in di.EnumerateDirectories()) {
    TreeNode tn = new TreeNode(d.Name);
    TreeView1.Nodes.Add(tn);
}

 

디렉토리와 관련된 클래스를 이용하는 경우 작업대상 디렉토리의 기준은 현재 실행중인 디렉토리를 기준으로 합니다. 이 위치는 Directory의 GetCurrentDirectory 메소드를 호출함으로써 알 수 있는데 이를 이용해 현재 디렉토리에 aaa 라는 폴더를 생성하고 싶으면 다음과 같이 구현할 수 있습니다.

 

Directory.CreateDirectory(Directory.GetCurrentDirectory() + @"\aaa"));

 

만약 이 작업대상 기준을 바꾸려면 SetCurrentDirectory메소드를 호출하여 대상으로 지정할 경로를 알려주면 됩니다.

 

Directory.SetCurrentDirectory(@"C:\");

'Programming > .NET' 카테고리의 다른 글

[C#] 형변환(캐스팅 - Casting)  (0) 2017.08.01
[C#] 이벤트(event)  (0) 2017.07.26
[C#] Directory 와 DirectoryInfo 클래스  (0) 2017.07.19
[Visual Studio] Immediate Window  (0) 2017.07.12
[ASP.NET] SQL Server 캐시 종속성  (0) 2017.07.04
[ASP.NET] PasswordRecovery  (0) 2017.06.27
0 0