Come scorrere tutti i file in una directory in c # .net?


121

Voglio ottenere i file nella cartella e anche nelle sue sottocartelle.Il seguente codice non ottiene i file nella sua sottocartella:

string[] files = Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs");

Qualcuno può dirmi come implementare questo in c # .net?


2
Ho sempre preferito il metodo MSDN per fare le cose. In fondo a questo collegamento forniscono un esempio ricorsivo con un programma di console (C #).
Justin

1
@Panuvin - Nota: il codice MSDN è un po 'pericoloso. Per cartelle molto grandi e contenuti di sottocartelle (molti molti file) puoi ottenere un'eccezione StackOverflow (a causa del codice ricorsivo)
Joezer

Risposte:


216
string[] files = 
    Directory.GetFiles(txtPath.Text, "*ProfileHandler.cs", SearchOption.AllDirectories);

Quest'ultimo parametro influenza esattamente ciò a cui ti riferisci. Impostalo su AllDirectories per ogni file incluso nelle sottocartelle e impostalo su TopDirectoryOnly se vuoi cercare solo nella directory data e non nelle sottocartelle.

Fare riferimento a MDSN per i dettagli: https://msdn.microsoft.com/en-us/library/ms143316(v=vs.110).aspx


5
Questo farà un ciclo infinito se c'è un ciclo nella struttura delle cartelle. Vedi msdn.microsoft.com/en-us/library/ms143448.aspx
Anthony Wieser

Qual è lo scopo del parametro medio?
Bee

2
Si chiama searchPattern ed è un filtro in base al quale vengono selezionati i file. In questo caso selezionerà tutti i file che terminano con "ProfileHandler.cs". Dai
Migwell

3

prova sotto il codice

Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs",SearchOption.AllDirectories)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.