2011-01-22 2 views
0

폴더 경로가 주어지면 모든 파일을 가져 오지 않고 마지막으로 수정 한 파일을 가져 오는 방법이 있습니까? 특정 시간 이후에 업데이트 된 폴더를 빨리 찾아야하며 마지막으로 수정 된 파일이 시간보다 이전 인 경우 해당 폴더를 완전히 건너 뛰고 싶습니다. 이 방법이 작동하지 않도록 파일 중 하나가 업데이트되면 폴더의 마지막 수정 시간이 업데이트되지 않는 것으로 나타났습니다.모든 파일을 열거하지 않고 마지막으로 수정 한 파일 얻기

답변

0

아니요,이 때문에 Windows는 검색 속도를 높이기 위해 색인 생성 기능을 제공합니다. NTFS 파일 시스템은 빠른 검색을 염두에두고 설계되지 않았습니다.

어쨌든 어렵지 않은 파일 변경 사항을 모니터링 할 수 있습니다. 프로그램을 백그라운드에서 실행하고 변경 사항을 모니터링하도록 허용 할 수 있으면이 방법이 효과적입니다. 과거 기록이 필요하다면 초기 검사를 한 번만 수행 한 다음 자신의 계층을 빌드 할 수 있습니다. 프로그램이 항상 실행되고있는 한 현재 스냅 샷이 있어야하며 느린 검색을 수행 할 필요가 없습니다.

또한 창 검색 자체를 사용하여 파일을 찾을 수 있습니다. 색인 생성이 가능하다면 아마 빨리 얻을 수있을 것입니다.

0

시도해보십시오.

DirectoryInfo di = new DirectoryInfo("strPath"); 
DateTime dt = di.LastWriteTime; 

그럼 당신은

Directory.EnumerateFiles(strPath, "*.*", SearchOption.TopDirectoryOnly); 

그런 다음 루프를 위 모음을 사용하여 각 파일에 대해()에서는 FileInfo를 얻어야한다.

파일의 FileInfo()에 대한 참조를 가져 오지 않고 파일의 수정 날짜를 얻는 방법이 표시되지 않습니다.

내가 아는 한 FileInfo가이 파일을 가져올 것이라고 생각하지 않습니다.

관련 문제