본문 바로가기

C#/파일 처리

(6)
C#에서 특수 폴더의 경로를 구하는 방법 (바탕 화면, 내 문서, Program Files, Windows, 시스템 폴더) Environment.GetFolderPath라는 정적 메서드를 이용하면 ‘바탕 화면’과 같은 특수한 폴더의 경로를 구할 수 있다. Envionment.SpecialFolder는 열거형을 인수로 받는다. //바탕 화면 폴더를 구한다 var desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); //내 문서 폴더를 구한다 var myDocumentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); //프로그램 파일 폴더를 구한다 var programFilesPath = Environment.GetFolderPath(Environment.Specia..
C#에서 파일 경로 이름 처리 1. 경로 이름을 구성 요소로 분할하는 방법 Path 클래스에 있는 정적 메서드를 사용하면 파일 이름을 구성 요소로 분할할 수 있다. var path = @”C:\Program Files\Microsoft Office\Office16\EXCEL.EXE”; //지정한 경로 문자열에서 디렉터리 정보를 반환 //반환된 경로에는 경로의 마지막에 있는 ‘\’가 포함되지 않는다. var directoryName = Path.GetDirectoryName(path); //지정한 경로 문자열에서 파일 이름과 확장자를 반환 var fileName = Path.GetFileName(path); //지정한 경로 문자열의 확장자를 반환 //반환된 경로의 확장자에는 점(.)이 포함된다 var extension = Path.Ge..
C#에서 Directory 처리 (디렉터리 존재 확인, 생성, 삭제, 이동, 이름 수정, 목록, 변경된 시각, 현재 디렉터리) Directory 클래스 또는 DirectoryInfo 클래스를 사용하면 디렉터리를 생성하고 삭제하는 처리와 파일을 열거하는 처리를 수행할 수 있다. Directory 클래스와 DirectoryInfo 클래스는 System.IO 네임스페이스에 소속되어 있다. Directory 클래스와 DirectoryInfo 클래스 중에 어느 것을 사용하든지 디렉터리에 관한 거의 모든 처리를 구현할 수 있다. 이 Directory 클래스와 DirectoryInfo 클래스의 관계는 File 클래스와 FileInfo 클래스의 관계와 같다. 따라서 일반적으로는 인스턴스를 생성하지 않아도 되는 Directory 클래스를 이용하고 이미 DirectoryInfo 객체가 구해진 상태라면 DirectoryInfo 클래스에 있는 메서드..
C#에서 파일 처리 (파일 존재 확인, 삭제, 복사, 이동, 이름 수정, 크기) 파일의 존재를 확인하고 파일을 삭제하고 파일을 이동하고 파일의 크기를 구하는 등의 처리를 수행하려면 System.IO 네임스페이스에 있는 File 클래스나 FileInfo 클래스를 사용한다. 이 두 개의 클래스에 포함된 메서드는 모두 비슷하다. File과 FileInfo 중 어느 쪽을 사용해야 할까? 일반적으로는 인스턴스를 생성할 필요가 없는 File 클래스를 사용하는 것이 좋다. 그러나 언제나 File 클래스를 사용하는 것이 좋은 것만은 아니다. 만약 FileInfo 생성자에서 파일이름을 지정해서 FileInfo 객체를 이미 생성한 상태라면 이 상태에서 File.Delete를 사용할 경우에는 FileInfo 생성자와 File.Delete 메서드의 두 곳에서 파일 이름을 지정해야 하므로 코드가 장황해진다..
C#에서 텍스트 파일 쓰기 (파일 출력) 1. 텍스트 파일에 한 행씩 문자열을 쓰는 방법 System.IO 네임스페이스에 있는 StreamWriter 클래스를 사용하면 텍스트를 파일에 출력할 수 있다. //텍스트 파일에 한 행씩 문자열을 출력한다 var filePath = @"C:\Example.txt"; using (var writer = new SteamWriter(filePath)) { writer.WriteLine(“example 1”); writer.WriteLine(“example 2”); writer.WriteLine(“example 3”); writer.WriteLine(“example 4”); } StreamWriter의 생성자에서 파일 경로를 지정 문자 인코드는 기본 문자코드(UTF-8)가 지정된 것으로 간주된다. 생성자가 호..
C#에서 텍스트 파일 읽기 (파일 입력) 1. 텍스트 파일 한 행씩 읽기 StreamReader 클래스를 사용 using System.IO; ... var filePath = @"C:\Example.txt"; if (File.Exists(filePath)) { //파일을 사용한 후 닫아주기위해 using으로 묶어준다. using(var reader = new StreamReader(filePath, Encoding UTF8)) { //파일의 마지막까지 읽어 들였는지를 EndOfStream 속성을 보고 조사 while (!reader.EndOfStream) { //ReadLine 메서드로 한 행을 읽어 들여 line 변수에 대입 var line = reader.ReadLine(); Console.WriteLIne(line); } } } File...