본문 바로가기
C++ 200제/코딩 IT 정보

C# 파일 크기 0은 읽지 않기, FileInfo linq query

by vicddory 2019. 6. 23.

C# 파일 크기 0은 읽지 않기, FileInfo linq query


파일을 가져와 C# FileInfo 배열에 담을 때, 크기가 0인 것은 제외하는 방법입니다.


C# Linq Query를 사용하면 간단하게 처리할 수 있어서 좋네요. 아래는 예제입니다.


1
2
3
4
5
6
7
8
9
10
string path = @"C:\\";
 
if (Directory.Exists(Path.GetDirectoryName(path)) == false)
    return;
 
FileInfo[] files = new DirectoryInfo(path).GetFiles("*.txt");
 
var query = from FileInfo info in files where info.Length > 0 select info;
 
FileInfo[] all_files = query.ToArray();
cs


2번 라인에서 폴더가 유효한지 먼저 검사합니다.


C# 파일 크기 0은 읽지 않기, FileInfo linq query[씨샵, 링크 쿼리 응용 예제]


6번 라인에서 원하는 확장자의 모든 파일 정보를 일단 files란 배열에 저장합니다.




8번 라인에서 C# Linq 쿼리를 작성합니다. FileInfo를 조회하기 위해 info란 내부 객체를 생성하고 files 요소를 순차적으로 대입합니다. 뒤에 where 조건문을 붙여 파일의 사이즈(FileInfo.Length)가 0 보다 크다면 해당 요소를 select합니다.


결과를 저장한 query를 ToArray() 함수를 이용해 all_files에 저장합니다. 결과적으로 몇 개의 파일이 있든, 크기가 0이라면 모두 제외됩니다.


C# Linq Query에는 remove, delete 등의 키워드가 별도로 없으니, where 조건문을 사용해야 합니다.


추가로, 파일을 크기별로 정리하고 싶다면 아래 쿼리를 사용하세요.


1
var query = from FileInfo info in files orderby info.Length descending select info;
cs


C# 파일 크기 0은 읽지 않기, FileInfo linq query

댓글