Pregunta

Estoy usando MSVE y tengo mis propios mosaicos que muestro en capas en la parte superior.El problema es que hay un montón de ellos y están en un servidor de red.En ciertos directorios, hay alrededor de 30.000 archivos.Inicialmente llamé Directory.GetFiles, pero una vez que comencé a realizar pruebas en un entorno pseudoreal, se agotó el tiempo de espera.

¿Cuál es la mejor manera de enumerar e iterar programáticamente tantos archivos?

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

¿Fue útil?

Solución

He trabajado en un sistema SAN en el pasado con grabaciones de audio de telefonía que tenían problemas con la cantidad de archivos en una sola carpeta; ese sistema quedó inutilizable en algún lugar cerca de 5000 (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 carpetas para que hubiera una cantidad más razonable de archivos.¡Curiosamente, Explorer también expiraría!

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

Otros consejos

Definitivamente divídalos.Dicho esto, manténgase lo más alejado posible del Servicio de Index Server.

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

Como dice Ronnie:dividirlos.

¿Podrías usar DOS?

DIR /s/b > Files.txt

También puede considerar indexar los archivos usted mismo u obtener una aplicación de terceros como Google Desktop o copérnico para hacerlo y luego interactuar con su índice.Sé que Copernic tiene una API que puedes usar para buscar cualquier archivo en su índice y también admite el mapeo de unidades de red.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top