C#에서 디렉터리나 파일을 읽고 쓰고 하는등에 클래스에 대해서 알아보자.
1. 디렉터리 존재여부 알기
네임스페이스 using System.IO 를 포함시키고 System.IO.Directory.Exists(string path) 함수를 사용하면 된다.
함수에 이름이 너무 길다면 using static System.IO.Directory; 를 하면 Exists() 만을 사용하면 된다.
아래 예제를 보자. 해당 디렉터리가 있는지 검사하는 예제이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | using System; using System.IO; using static System.IO.Directory; namespace TEST { class Program { static void Main(string[] args) { string dir = @"C:\test"; if (Exists(dir)) { System.Console.WriteLine("해당 폴더 존재"); } else { System.Console.WriteLine("해당 폴더 없음"); } } } } | cs |
2. 디렉터리 만들기, 삭제하기
디렉터리 생성 : System.IO.Directory.CreateDirectory(string path)
삭제 : System.IO.Directory.Delete(string path)
아래 예제는 해당 디렉터리가 있으면 삭제하고 없으면 생성하는 예제이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | using System; using System.IO; using static System.IO.Directory; namespace TEST { class Program { static void Main(string[] args) { string dir = @"C:\test"; if (Exists(dir)) { Delete(dir); System.Console.WriteLine("폴더 삭제"); } else { CreateDirectory(dir); System.Console.WriteLine("폴더 만들기"); } } } } | cs |
3. 파일 존재여부 검사
디렉터리와 다르게 파일을 다루는 것은 좀더 간단하다. File.Exists(string path) 함수를 사용하면된다.
디렉터리와 마찬가지로 네임스페이스 using System.IO 를 포함시켜준다.
아래 예제는 파일이 존재하는지 검사하는 예제이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | using System; using System.IO; namespace TEST { class Program { static void Main(string[] args) { string file = @"C:\test\aaa.txt"; if (File.Exists(file)) { System.Console.WriteLine("해당 파일 존재"); } else { System.Console.WriteLine("해당 파일 없음"); } } } } | cs |
4. 파일 생성하기, 텍스트 쓰기, 복사
파일을 생성하는 함수는 File.CreateText(string path) 를 사용하여 만들 수 있다.
원형은 다음과 같다. StreamWriter CreateText(string path);
파일복사는 copy함수를 쓰는데 아래와 같은 원형을 가진다. 마지막 파라미터인 overwrite는 true면 해당 파일이 존재하면 덮어쓰기를 한다.
void Copy(string sourceFileName, string destFileName, bool overwrite);
아래 예제는 파일을 만들어서 텍스트를 쓰고 복사를 한다. StreamWriter 객체로 파일로 생성한 파일을 받아서 WriteLine 로 파일에 내용을 쓴다. 그리고 Dispose 함수로 파일을 닫아준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | using System; using System.IO; namespace TEST { class Program { static void Main(string[] args) { string textFile = @"C:\test\text.txt"; string copyFile = @"C:\test\copy.txt"; StreamWriter textWrite = File.CreateText(textFile); //생성 textWrite.WriteLine("abcdefghijk"); //쓰기 textWrite.Dispose(); //파일 닫기 File.Copy(textFile, copyFile, true); //복사 } } } | cs |
5. 파일 읽기
StreamReader 클래스를 사용하여 파일을 읽을 수 있다. 객체를 생성하여 File.OpenText(String dir)로 파일을 연다.
읽은 내용을 모두 읽는건 ReadToEnd()를 사용한다.
파일을 닫는건 Dispose()를 사용한다.
아래 예제는 이전 예제에서 복사한 copy.txt 파일을 읽어 화면에 출력한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | using System; using System.IO; namespace TEST { class Program { static void Main(string[] args) { string copyFile = @"C:\test\copy.txt"; StreamReader textReader = File.OpenText(copyFile); System.Console.WriteLine(textReader.ReadToEnd()); textReader.Dispose(); } } } | cs |
'닷넷,C#,.NET' 카테고리의 다른 글
C# 텍스트 인고팅(ASCII, UTF-8 등)하기 string->byte 로 (0) | 2018.07.08 |
---|---|
C# 파일 이름, 확장자, 크기(용량), 수정 일자, 속성 등 알아내기 (1) | 2018.07.05 |
C# Parallel LINQ(PLINQ) 병렬 처리 LINQ 설명 및 시간 측정 (1) | 2018.06.22 |
C# LINQ 집계함수(Sum,MAX,MIN,Average,count,Aggregate 등) (0) | 2018.06.14 |
C# LINQ 사용 방법 및 예제 from, select, where, order by (0) | 2018.06.13 |