다음을 통해 공유


LINQ 및 파일 디렉터리(Visual Basic)

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

이 섹션의 쿼리는 비 파괴적입니다. 원본 파일 또는 폴더의 내용을 변경하는 데 사용되지 않습니다. 이는 쿼리가 부작용을 일으키지 않아야 한다는 규칙을 따릅니다. 일반적으로 원본 데이터를 수정하는 모든 코드(만들기/업데이트/삭제 연산자를 수행하는 쿼리 포함)는 데이터를 쿼리하는 코드와 별도로 유지되어야 합니다.

이 섹션에는 다음 항목이 포함되어 있습니다.

방법: 지정된 특성 또는 이름을 사용하여 파일 쿼리(Visual Basic)
해당 개체의 FileInfo 속성을 하나 이상 검사하여 파일을 검색하는 방법을 보여줍니다.

방법: 확장명별 파일 그룹화(LINQ)(Visual Basic)
파일 이름 확장명을 기반으로 개체 그룹을 FileInfo 반환하는 방법을 보여줍니다.

방법: 폴더 집합의 총 바이트 수 쿼리(LINQ)(Visual Basic)
지정된 디렉터리 트리의 모든 파일에서 총 바이트 수를 반환하는 방법을 보여 있습니다.

방법: 두 폴더의 내용 비교(LINQ)(Visual Basic)
지정된 두 폴더에 있는 모든 파일과 한 폴더에 있지만 다른 폴더에는 없는 모든 파일을 반환하는 방법을 보여 줍니다.

방법: 디렉터리 트리에서 가장 큰 파일 또는 파일 쿼리(LINQ)(Visual Basic)
디렉터리 트리에서 가장 크거나 가장 작은 파일 또는 지정된 수의 파일을 반환하는 방법을 보여줍니다.

방법: 디렉터리 트리에서 중복 파일 쿼리(LINQ)(Visual Basic)
지정된 디렉터리 트리에서 둘 이상의 위치에서 발생하는 모든 파일 이름을 그룹화하는 방법을 보여줍니다. 또한 사용자 지정 비교자를 기반으로 보다 복잡한 비교를 수행하는 방법도 보여 줍니다.

폴더에 있는 파일의 내용을 쿼리하는 방법(LINQ)(Visual Basic)
트리의 폴더를 반복하고, 각 파일을 열고, 파일의 내용을 쿼리하는 방법을 보여 줍니다.

코멘트

파일 시스템의 내용을 정확하게 나타내고 예외를 정상적으로 처리하는 데이터 원본을 만드는 데는 몇 가지 복잡성이 있습니다. 이 섹션의 예제에서는 지정된 루트 폴더 아래의 모든 파일과 모든 하위 폴더를 나타내는 개체의 FileInfo 스냅샷 컬렉션을 만듭니다. 각 FileInfo 쿼리의 실제 상태는 쿼리 실행을 시작하고 종료하는 시점 사이의 시간에 변경 될 수 있습니다. 예를 들어 데이터 원본으로 사용할 개체 목록을 FileInfo 만들 수 있습니다. 쿼리에서 Length 속성에 접근하려고 하면, FileInfo 개체가 파일 시스템에 접근하여 Length 값의 업데이트를 시도합니다. 파일이 더 이상 존재하지 않는 경우, 파일 시스템을 직접 쿼리하지 않더라도 쿼리에서 FileNotFoundException을 받게 됩니다. 이 섹션의 일부 쿼리는 특정 경우에 이러한 특정 예외를 사용하는 별도의 메서드를 사용합니다. 또 다른 옵션은 .를 사용하여 데이터 원본을 동적으로 업데이트하는 것입니다 FileSystemWatcher.

참고하십시오