Domanda

Sto usando MSVE e ho i miei riquadri che visualizzo a strati in alto.Il problema è che ce ne sono tantissimi e si trovano su un server di rete.In alcune directory sono presenti più di 30.000 file.Inizialmente ho chiamato Directory.GetFiles, ma una volta iniziato il test in un ambiente pseudo-reale, è scaduto il tempo.

Qual è il modo migliore per elencare e scorrere in modo programmatico tutti questi file?

Modificare:Il mio collega ha suggerito di utilizzare il servizio di indicizzazione MS.Qualcuno ha provato questo approccio e (come) ha funzionato?

È stato utile?

Soluzione

In passato ho lavorato su un sistema SAN con registrazioni audio di telefonia che presentavano problemi con il numero di file in una singola cartella: il sistema è diventato inutilizzabile intorno a 5.000 (su Windows 2000 Advanced Server con un'applicazione in C#.Net 1.1) - l'unica soluzione sensata che abbiamo trovato è stata quella di modificare la struttura delle cartelle in modo che ci fosse un numero più ragionevole di file.È interessante notare che anche Explorer andrebbe in timeout!

La convenzione che abbiamo ideato era una struttura che suddivideva la struttura in anni, mesi e giorni, ma ciò dipenderà dal tuo sistema e dalla possibilità di controllare la struttura delle directory...

Altri suggerimenti

Li divideremo definitivamente.Detto questo, stai il più lontano possibile dal Servizio di indicizzazione.

Nessuno..NET si basa su chiamate API di Windows sottostanti che odiano davvero quella quantità di file stessi.

Come dice Ronnie:dividerli.

Potresti usare il DOS?

DIR /s/b > Files.txt

Potresti anche provare a indicizzare i file tu stesso o procurarti un'app di terze parti come Google Desktop o copernico per farlo e poi interfacciarsi con il loro indice.So che Copernic ha un'API che puoi utilizzare per cercare qualsiasi file nel proprio indice e supporta anche la mappatura delle unità di rete.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top