2008-08-06 17 views
9

Estoy usando MSVE, y tengo mis propios mosaicos que se muestran en capas en la parte superior. El problema es que hay muchos y están en un servidor de red. En ciertos directorios, hay algo del orden de más de 30,000 archivos. Inicialmente llamé a Directory.GetFiles, pero una vez que comencé a probar en un entorno pseudo-real, se agotó el tiempo de espera.¿Buscar directorios de toneladas de archivos?

¿Cuál es la mejor manera de enumerar mediante programación y repite el proceso, esta cantidad de archivos?

Editar: Mi compañero de trabajo sugirió utilizar el servicio de indexación MS. ¿Alguien ha probado este enfoque y (cómo) ha funcionado?

Respuesta

4

He trabajado en un sistema SAN en el pasado con grabaciones de audio de telefonía que tenían problemas con el número de archivos en una sola carpeta; ese sistema se volvió inutilizable en cerca de 5,000 (en Windows 2000 Advanced Server con una aplicación en C#. Net 1.1) - la única solución sensata que se nos ocurrió fue cambiar la estructura de la carpeta para que hubiera una cantidad más razonable de archivos. ¡Curiosamente, Explorer también se desconectaría!

La convención que se nos ocurrió fue una estructura que se rompió la estructura en años, meses y días - pero eso dependerá de su sistema y si se puede controlar la estructura de directorios ...

+0

(Ahora estoy en una empresa nueva, pero sí recuerdo partes de este proyecto.) El problema es que AFAIK, MSVE tenía una estructura de carpetas específica que esperaba, y todo para una capa entró en una carpeta. No lo investigamos lo suficiente como para saber si podríamos agregar varias carpetas para que MSVE pudiera buscarlas en todas ellas o buscar en carpetas específicas en niveles específicos. –

1

Ninguno. .NET se basa en llamadas subyacentes de la API de Windows que realmente odian esa cantidad de archivos.

Como Ronnie dice: separarlos.

1

Usted podría utilizar DOS?

DIR /s/b > Files.txt 
2

Definitivamente dividirlos. Dicho esto, manténgase lo más lejos posible del Servicio de Index Server.

+0

Por fortuna, nunca intentamos usar el servicio de indexación. Y el equipo del que yo era parte ahora depende de una sola persona. Por lo tanto, creo que esta parte del proyecto ha disminuido mucho en la lista de prioridades. –

1

También puede consultar indizar los archivos usted mismo, o obtener una aplicación de terceros como Google Desktop o copernic para hacerlo y luego interactuar con su índice. Sé que Copernic tiene una API que puede usar para buscar cualquier archivo en su índice y también admite la asignación de unidades de red.

Cuestiones relacionadas