[C# 강좌 24강] 파일 시스템

공부/C#  2012.10.01 09:00



안녕하세요. 개발자 명월입니다.

이번 포스팅에서는 파일 시스템에 대해 알아보겠습니다. 파일시스템으로 파일을 만들 수도 있고 디렉토리를 관리하고 복사, 정보를 얻을 수 있습니다. 파일 시스템을 간단히 많이 쓰는 곳에서는 예로 우리가 게임을 실행할때 보면 업데이트 관리를 합니다. 물론 파일 시스템을 사용하지 않고 버전관리로 하는 것이 대부분이나 버전관리로 하지 않고 서버에 있는 파일과 클라이언트에 있는 파일과 비교를 하면서 버전관리하는 방식도 있습니다. 그럴때는 파일 시스템을 사용하겠지요. 그럼 좀 더 자세히 알아 보겠습니다.

 

파일 시스템은 System.IO의 네임스페이스 에서 객체를 불러와서 사용됩니다. 그럼 System.IO 네임 스페이스를 MSDN에서 확인해 보겠습니다.

MSDN - System.IO MSDN 바로가기

 

 

역시 설명보다는 하나의 예제로 확인 하는 것이 이해가 빠르겠습니다.

 

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Text;
  4 using System.IO;
  5
  6 namespace Blog20120930_3_
  7 {
  8     class Program
  9     {
10         static void Main(string[] args)
11         {
12             new Program();
13         }
14         DirectoryInfo DI;
15         public Program() {
16             String init_directory = "C:\\";
17             String commander;
18             DI = new DirectoryInfo(init_directory);
19             while (true) {
20                 Console.Write(DI.FullName+"> ");
21                 commander = Console.ReadLine();
22                 if (commander.Equals("dir")) {
23                     dir();
24                 }
25                 else if (commander.Substring(0, 3).Equals("cd ")) {
26                     DirectoryInfo DI_buf = new DirectoryInfo(DI.FullName+commander.Replace("cd ", ""));
27                     if (DI_buf.Exists)
28                     {
29                         DI = DI_buf;
30                     }
31                     else {
32                         Console.WriteLine("디렉토리가 없습니다.");
33                     }
34                 }
35                 else if (commander.Equals("root")) {
36                     DI = new DirectoryInfo(init_directory);
37                 }
38                 else if (commander.Equals("exit")) {
39                     break;
40                 }
41             }
42         }
43         public void dir()
44         {
45             DirectoryInfo[] _directory = DI.GetDirectories();
46             FileInfo[] _files = DI.GetFiles();
47             Console.WriteLine("하위 디렉토리 정보");
48             foreach(DirectoryInfo _dir in _directory){
49                 Console.WriteLine(_dir.Name);
50             }
51             Console.WriteLine("파일 정보");
52             foreach (FileInfo _file in _files) {
53                 Console.WriteLine(_file.Name);
54             }
55         }
56     }
57 }
58

 

 

파일, 디렉토리 시스템을 이용해서 커맨드 비슷(?)하게 만들어 봤습니다.

결과화면입니다.

 

 

System.IO는 실무에서도 정말 많이 사용하는 네임스페이스 중에 하나입니다. 꼭 확인하고 넘어가야곘습니다.

 

참고소스 : Blog20120930[3].zip

 


댓글 0개가 달렸습니다.
댓글쓰기