2010-03-30 2 views

답변

1

확인이 스레드 : How can I quickly enumerate directories on Win32?

사실은 FindFirstFile을/FindNextFile과 설명, 그러나 당신이 빨리 필요하면 당신은 커널을 가야한다.
스레드에 설명 된 인덱스 솔루션은 그러나 FAT32 시스템에 대해 작동하지 않습니다 - 신용 MSalters 인덱스 솔루션이 스레드에서 암시하는 것으로

+0

는 NTFS의 chnage 저널을 가정; 이 항목의 FAT32는 해당 옵션을 제외합니다. 감사합니다 MSalters – MSalters

+0

. 나는 이것을 포함시키기 위해 나의 대답을 바꾸었다. 비록,이 게시물을 내 주요 이유는 다른 스레드를 확인하는 것이 었 :) – Default

0

"스캐닝"이란 용어는 잘 정의되어 있지 않습니다. 각각의 모든 파일의 모든 바이트를 읽고 싶습니까? 가장 쉬운 방법은 디렉토리 목록을 사용하는 것입니다. 루트 디렉토리를 눌러 시작하십시오. 그런 다음 디렉터리 목록이 비어 있지 않으면 FindFirstFile/FindNextFile을 호출하여 모든 파일과 하위 디렉터리를 열거합니다. 디렉토리 목록에 하위 디렉토리를 추가하고 발견 한 파일을 읽으십시오.

업데이트 : 목적 : FindFirstFileEx(FindExInfoBasic)이면 충분합니다. 하위 디렉토리를 보자 마자 (깊이 우선) 서브 디렉토리를 입력하는 대신 한 번에 하나의 디렉토리 (폭 우선) 만 처리하려고 할 것입니다. 단일 디렉터리의 FAT32 디렉터리 항목은 함께 저장되기 때문에 더 빠릅니다. 그러나 하위 디렉터리는 일반적으로 상위 디렉터리에 인접하여 저장되지 않습니다.