FileInfo 클래스는 파일의 정보를 제공하는 클래스이다.
System.IO 네임스페이스에 선언되어 있으므로 FileInfo 클래스를 사용하기 위해 다음과 같이 네임스페이스를 추가한다.
using System.IO;
FileInfo 클래스의 인스턴스를 생성하기 위해 생성자에 정보를 확인하고자 하는 파일의 전체 경로를 인자로 넘긴다. 반드시 실제로 존재하는 파일의 경로를 지정할 필요는 없다.
var finfo = new FileInfo("Test.txt");
FileInfo의 여러 가지 기능들을 사용해보자.
1. Exists
파일이 존재하는지의 여부를 나타내는 속성이다.
파일이 존재한다면 true이고, 존재하지 않는다면 false이다.
var finfo = new FileInfo("Test.txt");
if(!finfo.Exists)
{
Console.WriteLine("파일이 존재하지 않습니다.");
return;
}
2. FileName, FullName, DirectoryName, Extension
(1) FileName : 파일명(확장자 포함)
(2) FullName : 전체 경로(파일명, 확장자 포함)
(3) DirectoryName : 파일이 속한 경로(파일명 제외, 가장 마지막에 경로 구분자('\')는 포함되지 않음)
(4) Extension : 확장자
var finfo = new FileInfo("C:\\MyFiles\\TextFiles\\Test.txt");
Console.WriteLine(finfo.FileName); // Test.txt
Console.WriteLine(finfo.FullName); // C:\\MyFiles\\TextFiles\\Test.txt
Console.WriteLine(finfo.DirectoryName); // C:\\MyFiles\\TextFiles
Console.WriteLine(finfo.Extension); // .txt
3. CopyTo(string destFileName)
파일을 지정된 경로 + 파일명으로 복사한다.
new FileInfo("test.txt").CopyTo("test_복사본.txt");
만약 CopyTo()에 인자로 넘긴 경로의 파일이 이미 존재하는 경우 IOException예외가 발생한다.
파일이 이미 존재하더라도 무시하고 덮어쓰고 싶다면 CopyTo(string destFileName, bool overwrite)를 사용한다.
new FileInfo("test.txt").CopyTo("test_복사본.txt", true);
4. Create()
지정된 경로 + 파일명으로 새 파일을 생성한다.
만약 이미 파일이 존재한 경우 파일을 덮어쓴다.
new FileInfo("test.txt").Create();
5. Delete()
지정된 경로 + 파일명을 영구적으로 삭제한다. (휴지통으로 보내지 않음)
이 메서드로는 폴더를 삭제할 수 없다. 또한 파일이 존재하지 않아도 예외를 발생시키지 않는다.
new FileInfo("test.txt").Delete();
'.NET > C#' 카테고리의 다른 글
[C#] out 형식 파라미터 사용법 (0) | 2021.08.15 |
---|---|
[C#] ThreadPool 사용법 (0) | 2021.08.12 |
[C#] StreamReader와 StreamWriter로 파일 읽기, 쓰기 (0) | 2021.07.27 |
[C#] using 구문 사용법 (0) | 2021.07.23 |
[C#] delegate와 delegate 체인 (0) | 2021.07.20 |