2008-08-06 8 views
9

저는 MSVE를 사용하고 있으며 레이어 위에 레이어를 표시하고 있습니다. 문제는 그 중 상당수가 네트워크 서버에 있다는 것입니다. 특정 디렉토리에는 30,000 개 이상의 파일 순서가 있습니다. 처음에는 Directory.GetFiles라고 불렀지 만 일단 의사 실제 환경에서 테스트를 시작하면 시간이 초과되었습니다.많은 수의 파일을 찾기 위해 디렉토리를 찾으십니까?

이 많은 파일을 프로그래밍 방식으로 나열하고 반복하는 가장 좋은 방법은 무엇입니까?

편집 : 동료가 MS 인덱싱 서비스를 사용하도록 제안했습니다. 누구나이 접근법을 시도해 보았으며 (어떻게) 효과가 있었습니까?

답변

4

전 한 번 SAN 시스템에서 한 폴더의 파일 수에 문제가있는 전화 녹음을했습니다.이 시스템은 C#에서 응용 프로그램이있는 Windows 2000 Advanced Server에서 5,000 근처에서 사용할 수 없게되었습니다. Net 1.1) - 우리가 생각해 낸 유일한 합리적인 해결책은보다 합리적인 수의 파일이 있도록 폴더 구조를 변경하는 것이 었습니다. 흥미롭게도 익스플로러도 시간을 초과 할 것입니다!

우리가 함께했다 협약은 년, 월과 일의 구조를 부러 구조이었다 - 그러나 그것은 시스템에 의존하고 없음

+0

(지금은 새로운 회사에 있지만이 프로젝트의 일부분을 기억합니다.) 문제는 AFAIK, MSVE에 특정 폴더 구조가 있다는 것입니다. 한 층에 대한 모든 것이 하나가되었습니다. 폴더. MSVE가 모든 폴더를 볼 수 있도록 여러 폴더를 집계 할 수 있는지, 특정 폴더에서 특정 폴더를 볼 수 있는지 여부를 알기에는 충분히 조사하지 않았습니다. –

1

... 당신은 디렉토리 구조를 제어 할 수 있는지 여부 것입니다. .NET은 파일 자체의 양을 정말로 싫어하는 기본 Windows API 호출에 의존합니다.

Ronnie가 말했듯이 : 그들을 나누십시오.

1

DOS를 사용할 수 있습니까?

DIR /s/b > Files.txt 
2

확실히 분할합니다. 즉, 가능한 한 색인 서비스와 멀리 떨어져 있어야합니다.

+0

다행히도 색인 서비스를 사용하려하지 않았습니다. 그리고 제가 참여한 팀은 이제 한 사람에게로 내려갑니다. 그래서 나는이 프로젝트의 일부가 우선 순위 목록에 떨어 졌다고 생각한다. –

1

파일을 직접 색인 생성하거나 Google 데스크톱 또는 copernic과 같은 세 번째 부분 앱을 얻은 다음 색인과 상호 작용할 수도 있습니다. copernic에는 색인에있는 파일을 검색하는 데 사용할 수있는 API가 있으며 네트워크 드라이브 매핑을 지원한다는 것도 알고 있습니다.

관련 문제