2013-05-29 3 views
-1

FindFirstFileFindNextFile (kernel32)을 사용하여 폴더와 파일 (c# Pinvoke)을 얻고 있습니다. System.IO이 너무 느리고 250 자 이상의 경로를 지원하지 않습니다.FindFirstFile과 GetFileSize/GetFileSizeEx를 결합하여 성능 향상 (kernel32)

파일의 바이트 길이를 얻으려면 어떤 식 으로든 FindNextFile이 반환하는 핸들을 사용할 수 있습니까?

현재 시도는 INVALID_HANDLE입니다. 이유는 createfile 콜백 대신 디렉토리 콜백이라고 생각합니다.

CreateFile을 다시 호출하여 파일 핸들을 "두 번"얻지 않으려합니다. 매우 느립니다.

감사합니다.

+0

관련 https://bcl.codeplex.com/wikipage?title=Long%20Path&referringTitle=Home – user7116

답변

4

FindNextFile 핸들을 반환하지 않습니다. 왜 그렇게 생각하는지 확신 할 수 없습니다.

WIN32_FIND_DATA에는 파일 크기가 포함되어 있습니다. 이 구조는 FindNextFile으로 채워집니다.

+0

이 힌트를 가져 주셔서 감사합니다! – DerAbt