다음을 통해 공유


LINQ 및 파일 디렉터리

업데이트: 2007년 11월

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

참고:

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

이 단원의 쿼리는 안전합니다. 원본 파일이나 폴더의 내용을 변경하는 데 사용되지 않습니다. 0% your edit This follows the rule that queries should not cause any side-effects. 이는 쿼리로 인해 의도하지 않은 결과가 발생해서는 안 된다는 규칙을 따른 것입니다. 일반적으로 소스 데이터를 수정하는 모든 코드(create / update / delete 연산자를 수행하는 쿼리 포함)는 단순히 데이터를 쿼리하는 코드와 별도로 보관해야 합니다.

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

주석

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

참고 항목

개념

LINQ to Objects