문제

Directory.GetFiles () 또는 유사한 메서드에서 모든 결과를 반복 할 필요없이 특정 유형의 파일 수를 찾는 방법이 있습니까?다음과 같은 것을 찾고 있습니다. 라코 디스

Directory.GetFiles를 호출하는 재귀 함수를 만들 수 있다는 것을 알고 있지만 모든 반복없이이 작업을 수행 할 수 있다면 훨씬 더 깔끔 할 것입니다.

수정 : 반복하고 반복하지 않고이를 수행 할 수없는 경우이를 수행하는 가장 좋은 방법은 무엇입니까?

도움이 되었습니까?

해결책

Directory.GetFiles (path, searchPattern, SearchOption) Directory.GetFiles ()의 과부하.

Path는 경로를 지정하고 searchPattern은 와일드 카드 (예 : *, * .format)를 지정하며 SearchOption은 하위 디렉토리를 포함하는 옵션을 제공합니다.

이 검색의 반환 배열의 Length 속성은 특정 검색 패턴 및 옵션에 대한 적절한 파일 수를 제공합니다. 라코 디스

편집 : 또는 Directory.EnumerateFiles 메서드 라코 디스

다른 팁

가장 매끄러운 방법은 linq를 사용하는 것입니다. 라코 디스

다음과 같은 GetFile 오버로드를 사용할 수 있습니다. <인용구>

Directory.GetFiles 메서드 (문자열, 문자열, SearchOption )

및이 SearchOption 구성원 : <인용구>

AllDirectories -현재 디렉토리 및 모든 하위 디렉토리 검색 작업에서.이 옵션 마운트와 같은 재분석 지점 포함 드라이브 및 심볼릭 링크 검색.

GetFiles는 문자열 배열을 반환하므로 찾은 파일 수인 길이를 얻을 수 있습니다.

더 최적화 된 버전을 찾고있었습니다.아직 찾지 못했기 때문에 코드를 작성하여 여기에서 공유하기로 결정했습니다. 라코 디스

GetFiles / GetDirectories를 사용하는 모든 솔루션은 이러한 모든 개체를 만들어야하므로 다소 느립니다.열거를 사용하여 임시 개체 (FileInfo / DirectoryInfo)를 생성하지 않습니다.

설명 참조 http://msdn.microsoft.com/en-us/자세한 내용은 library / dd383571.aspx 를 참조하세요.

재귀를 사용하면 MagicFindFileCount는 다음과 같습니다. 라코 디스

Jon의 솔루션 이 더 나은 솔루션 일 수 있습니다.

부모 디렉토리에 디렉토리와 파일의 수를 생성하는 앱이 있습니다.일부 디렉토리에는 각각에 수천 개의 파일이있는 수천 개의 하위 디렉토리가 있습니다.반응 형 UI를 유지하면서 이렇게하려면 다음을 수행합니다 ( ADirectoryPathWasSelected 메서드로 경로 보내기). 라코 디스

누군가가 반복하는 부분을 수행해야합니다.

AFAIK, .NET에는 이미 그런 방법이 없기 때문에 누군가 당신이되어야한다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top