'FileInfo'에 해당되는 글 2건

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
Programming/.NET

DirectoryInfo 는 특정 디렉토리에 대한 하위 디렉토리 구조를 알 수 있도록 하는 클래스 입니다. 뿐만 아니라 다음과 같이 디렉토리 내부에 있는 파일목록도 가져올 수 있습니다.

 

DirectoryInfo di = new DirectoryInfo("C:\\");
foreach (System.IO.DirectoryInfo d in di.GetDirectories())
{
    foreach (FileInfo fi in d.GetFiles()) {
        Response.Write(fi.Name + "<br />");
    }
}

 

디렉토리 목록을 가져오기 위한 GetDirectories메소드와 마찬가지로 GetFiles메소드도 파일수만큼의 배열을 할당하여 FileInfo개체로 채워넣는 과정을 거치게 됩니다. 이 메소드를 사용하는데 성능상 문제가 생긴다면 EnumerateFiles메소드로 대체할 수 있습니다.

 

FileInfo개체는 파일이름이나 크기등 파일에 관한 대부분의 정보를 얻을 수 있으며

 

DirectoryInfo di = new DirectoryInfo("C:\\");
foreach (System.IO.DirectoryInfo d in di.GetDirectories())
{
    foreach (FileInfo fi in d.GetFiles()) {
        Response.Write("파일이름 : " + fi.Name + "<br />");
        Response.Write("마지막작성일 : " + fi.LastWriteTime + "<br />");
    }
}

 

파일삭제나 이동등도 가능합니다.

 

foreach (FileInfo fi in d.GetFiles()) {
    fi.MoveTo("D:\\");
}

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

[C#] FtpWebRequest / FtpWebResponse  (0) 2016.06.29
[ASP.NET] SqlDataAdapter  (0) 2016.06.14
[C#] FileInfo  (1) 2016.06.09
[ASP.NET] LoginView  (0) 2016.06.01
[ASP.NET] EntityDataSource  (0) 2016.05.24
[C#] System.IO.Path 클래스  (0) 2016.05.17
1 0
1
블로그 이미지

클리엘