C#에서 디렉터리나 파일을 읽고 쓰고 하는등에 클래스에 대해서 알아보자.
1. 디렉터리 존재여부 알기
네임스페이스 using System.IO 를 포함시키고 System.IO.Directory.Exists(string path) 함수를 사용하면 된다.
함수에 이름이 너무 길다면 using static System.IO.Directory; 를 하면 Exists() 만을 사용하면 된다.
아래 예제를 보자. 해당 디렉터리가 있는지 검사하는 예제이다.
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("해당 폴더 없음");
}
}
}
}
2. 디렉터리 만들기, 삭제하기
디렉터리 생성 : System.IO.Directory.CreateDirectory(string path)
삭제 : System.IO.Directory.Delete(string path)
아래 예제는 해당 디렉터리가 있으면 삭제하고 없으면 생성하는 예제이다.
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("폴더 만들기");
}
}
}
}
3. 파일 존재여부 검사
디렉터리와 다르게 파일을 다루는 것은 좀더 간단하다. File.Exists(string path) 함수를 사용하면된다.
디렉터리와 마찬가지로 네임스페이스 using System.IO 를 포함시켜준다.
아래 예제는 파일이 존재하는지 검사하는 예제이다.
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("해당 파일 없음");
}
}
}
}
4. 파일 생성하기, 텍스트 쓰기, 복사
파일을 생성하는 함수는 File.CreateText(string path) 를 사용하여 만들 수 있다.
원형은 다음과 같다. StreamWriter CreateText(string path);
파일복사는 copy함수를 쓰는데 아래와 같은 원형을 가진다. 마지막 파라미터인 overwrite는 true면 해당 파일이 존재하면 덮어쓰기를 한다.
void Copy(string sourceFileName, string destFileName, bool overwrite);
아래 예제는 파일을 만들어서 텍스트를 쓰고 복사를 한다. StreamWriter 객체로 파일로 생성한 파일을 받아서 WriteLine 로 파일에 내용을 쓴다. 그리고 Dispose 함수로 파일을 닫아준다.
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); //복사
}
}
}
5. 파일 읽기
StreamReader 클래스를 사용하여 파일을 읽을 수 있다. 객체를 생성하여 File.OpenText(String dir)로 파일을 연다.
읽은 내용을 모두 읽는건 ReadToEnd()를 사용한다.
파일을 닫는건 Dispose()를 사용한다.
아래 예제는 이전 예제에서 복사한 copy.txt 파일을 읽어 화면에 출력한다.
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();
}
}
}
'개발언어 > C#' 카테고리의 다른 글
[C#] FolderBrowserDialog 이용하여 폴더 선택 및 정보 가져오기출처: [BeomBeomJoJo - Programmer] (0) | 2021.01.19 |
---|---|
[C#] string.format 예제 (0) | 2021.01.19 |
[C#] 파일 이름, 확장자, 크기(용량), 수정 일자, 속성 등 알아내기 (0) | 2021.01.19 |
[C#] 델리게이트 (Delegate) - 콜백, 체인 (0) | 2021.01.18 |
[C#] 다른 Thread에서 UI접근하기 (0) | 2021.01.18 |