Programming/.NET

System.IO.File은 파일을 조작하기 위한 클래스입니다.

 

System.IO.File.Copy("aaa.txt", "bbb.txt");
System.IO.File.Copy("aaa.txt", "bbb.txt", true);

 

aaa.txt파일을 bbb.txt로 복사합니다. 다만 복사될 위치(Environment.CurrentDirectory값 기본)에 bbb.txt가 존재한다면 예외가 발생하는데, 예외를 발생시키지 않고 그냥 덮어쓰고자 하는경우 3번째 인자값으로 true전달하면 됩니다.

 

if (File.Exists("aaa.txt")) {
    //
}

 

파일이 존재하는지의 여부는 Exists메서드로 알 수 있습니다.

 

File.Move("aaa.txt", "bbb.txt");

 

Move는 파일을 이동시키는 메서드입니다. 첫번째와 두번째 인자에서 지정한 파일의 위치가 같을 경우 aaa.txt파일명을 bbb.txt로 바꾸는 결과를 얻게됩니다. Move()메서드에서는 파일이 이미 존재하는 경우 예외를 발생시킵니다.

 

byte[] b = File.ReadAllBytes("aaa.txt");
string[] s = File.ReadAllLines("aaa.txt");
string ss = File.ReadAllText("aaa.txt");

 

파일을 읽을때는 Read~로 시작하는 메서드를 사용할 수 있으며 각 형식에 맞게 읽어들인 파일내용을 변수에 저장하여 활용할 수 있습니다.

 

foreach (string line in File.ReadLines("aaa.txt")) {
    //
}

 

ReadLines메서드는 파일의 내용을 한줄씩 읽어 컬렉션형태로 반환합니다. ReadAllLines는 파일의 내용전체를 모두 배열로 반환할때까지 기다려야 하지만 ReadLines는 한줄씩 읽어 한줄씩 반환하므로 전체를 다 읽을때까지 기다릴 필요가 없습니다.

 

var fv = from line in File.ReadLines("aaa.txt")
        where line.Contains("abc")
        select line;

foreach (var sv in fv) {
    //
}

 

ReadLines()메서드를 사용할때 LINQ등을 사용하면 필요한 내용을 가진것만 필터링이 가능합니다.

 

Write~메서드는 파일을 내용을 쓰는 기능을 수행합니다.

 

string[] s = new string[] {"korea", "hello", "cliel" };
File.WriteAllLines("aaa.txt", s);

 

File클래스는 몇몇 정적메서드를 제공해 파일의 조작기능을 수행합니다. 하지만 FileInfo는 특정 파일을 클래스의 인스턴스로 구현해 해당 파일을 조작할 수 있도록 합니다.

 

FileInfo f = new FileInfo("aaa.txt");

 

위 예제에서는 aaa.txt파일의 인스턴스로 f를 생성했으며 이제 파일 조작은 f개체로 수행할 수 있습니다.

 

f.CopyTo("bbb.txt"); //aaa.txt를 bbb.txt로 복사합니다.
f.Delete(); //aaa.txt파일을 삭제합니다.

 

'Programming > .NET' 카테고리의 다른 글

[ASP.NET MVC] 필터(Filter)  (0) 2018.03.20
[ASP.NET MVC] 컨트롤러(Controller)  (0) 2018.03.14
[C#] File / FileInfo  (0) 2018.03.07
[C#] Hashtable / SortedList  (0) 2018.02.27
[ASP.NET MVC] 라우팅(Routing)  (0) 2018.02.21
[C#] Stack / Queue  (0) 2018.02.13
0 0