다음을 통해 공유


LINQ 및 파일 디렉터리

많은 파일 시스템 작업은 기본적으로 쿼리이므로 LINQ 접근 방식에 적합합니다.

[!참고]

여러 형식의 파일과 문서의 콘텐츠에서 프로그래밍 쿼리를 수행하려는 경우 Windows Desktop Search Engine을 사용해 보십시오.현재 LINQ를 사용하여 쿼리할 수는 없지만 파일 시스템의 복잡성을 효과적으로 관리하는 강력한 인덱싱 서비스를 제공합니다.

이 단원의 쿼리는 안전합니다.원본 파일이나 폴더의 내용을 변경하는 데 사용되지 않습니다.즉, 쿼리로 인해 부정적인 영향이 있어서는 안 된다는 규칙을 따릅니다.일반적으로 소스 데이터를 수정하는 모든 코드(create / update / delete 연산자를 수행하는 쿼리 포함)는 단순히 데이터를 쿼리하는 코드와 별도로 보관해야 합니다.

이 단원에는 다음과 같은 항목이 있습니다.

설명

파일 시스템의 콘텐츠를 정확하게 나타내고 예외를 적절하게 처리하는 데이터 소스를 만드는 경우 몇 가지 복잡한 문제가 있습니다.이 단원의 예제에서는 지정한 루트 폴더 및 모든 하위 폴더에 있는 모든 파일을 나타내는 FileInfo 개체의 스냅숏 컬렉션을 만듭니다.쿼리 실행을 시작하는 시간과 끝내는 시간 사이에 각 FileInfo의 실제 상태가 변할 수 있습니다.예를 들어 데이터 소스로 사용할 FileInfo 개체의 목록을 만들 수 있습니다.쿼리에서 Length 속성에 액세스하려고 하면 FileInfo 개체가 파일 시스템에 액세스하여 Length 값을 업데이트합니다.파일이 없으면 직접 파일 시스템을 쿼리하지 않는 경우에도 쿼리에서 FileNotFoundException이 발생합니다.이 단원의 일부 쿼리에서는 특정 경우에 이러한 특정 예외를 사용하는 별도의 메서드를 사용합니다.FileSystemWatcher를 사용하여 데이터 소스가 동적으로 업데이트되도록 하는 옵션도 있습니다.

참고 항목

개념

LINQ to Objects