0
이 기능을 실행하면 10 분 정도 밖에 걸리지 않는 파일이 있습니다. 문제가 무엇입니까? 이 함수를 만들었습니다 :더 빨리 Directory.GetFiles()
public static List<string> FindFiles(string sFilename, string sDir, SearchOption soOption = SearchOption.AllDirectories)
{
List<string> lFiles = new List<string>(Directory.GetFiles(sDir, sFilename, soOption));
return lFiles;
}
왜 이렇게 느린가요? 동일한 작업 (디렉토리에서 파일 찾기)을 수행하는 또 다른 방법이 있습니까?
코드 이식성이 문제가되지 않으면 p/invoke를 사용하여 디렉토리 파일을 열거 할 수 있습니다. FindFirstFile로 시작할 수 있습니다. http://pinvoke.net/default.aspx/kernel32/FindFirstFile.html 및 MSDN : http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v = vs.85) .aspx –
@ ZoranCausev 이미'GetFiles' /'EnumerateFiles'가하는 일입니다. –
여기 코드가 문제가 아니라고 생각합니다. @MichaelBray (Directory.EnumerateFiles)의 대답을 사용하는 것이 좋습니다. 검색하는 디렉토리의 크기는 얼마입니까? 여기에 Windows의 한계에 부딪 힐 수 있습니다. 또 다른 질문 : 귀하의 컴퓨터 또는 네트워크 드라이브에 있습니까? 이것은 또한 성능에 영향을 미칩니다. – Koen