Dato un percorso di cartella (come C: \ cartella casuale), come posso trovare un file che contiene una determinata estensione, come txt? Presumo che dovrò fare una ricerca per * .txt nella directory, ma non sono sicuro di come suppongo di iniziare questa ricerca, in primo luogo.Trova un file con una certa estensione nella cartella
risposta
Vedere la classe System.IO.Directory
e il metodo statico GetFiles
. Ha un sovraccarico che accetta un percorso e un modello di ricerca. Esempio:
string[] files = System.IO.Directory.GetFiles(path, "*.txt");
Si potrebbe utilizzare la classe di Directory
Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories)
Questo non funziona se l'estensione sarebbe qualcosa come txt_ o qualsiasi altra cosa come indicato in la documentazione https://msdn.microsoft.com/en-us/library/wz42302f(v=vs.110).aspx –
E 'abbastanza facile, in realtà. È possibile utilizzare la classe System.IO.Directory
insieme a System.IO.Path
. Qualcosa di simile (utilizzando LINQ rende ancora più facile):
var allFilenames = Directory.EnumerateFiles(path).Select(p => Path.GetFileName(p));
// Get all filenames that have a .txt extension, excluding the extension
var candidates = allFilenames.Where(fn => Path.GetExtension(fn) == ".txt")
.Select(fn => Path.GetFileNameWithoutExtension(fn));
Ci sono molte varianti su questa tecnica anche, naturalmente. Alcune delle altre risposte sono più semplici se il tuo filtro è più semplice. Questo ha il vantaggio dell'enumerazione ritardata (se questo è importante) e un filtraggio più flessibile a spese di più codice.
Grazie per tutto il lavoro extra che ci hai dedicato. Tuttavia, sto andando solo per una semplice affermazione dato che ho solo un file di testo nella directory (è stato estratto dal mio programma). – DMan
il seguente metodo restituisce solo i file con determinate estensioni (ad esempio: file con .txt, ma non .txt1)
public static IEnumerable<string> GetFilesByExtension(string directoryPath, string extension, SearchOption searchOption)
{
return
Directory.EnumerateFiles(directoryPath, "*" + extension, searchOption)
.Where(x => string.Equals(Path.GetExtension(x), extension, StringComparison.InvariantCultureIgnoreCase));
}
Come per la mia comprensione, questo può essere fatto in due modi:
1) È possibile utilizzare Directory Class con il metodo Getfiles e attraversare tutti i file per verificare la nostra estensione richiesta.
Directory.GetFiles ("your_folder_path) [i] .Contains (" *. Txt ")
2) È possibile utilizzare classe Path con il metodo GetExtension che prende percorso del file come parametro e verifica l'extension.To ottenere il percorso del file, basta avere una condizione di loop che recuperare un singolo file e restituire il percorso del file che può essere utilizzato per la verifica.
Path.GetExtension (your_file_path) .equals ("json")
Nota: Sia la logica deve essere all'interno di una condizione di loop.
Utilizzare questo codice per leggere il file con tutti i tipi di file di estensione.
string[] sDirectoryInfo = Directory.GetFiles(SourcePath, "*.*");
- 1. Testo sublime 2 trova nella cartella con estensione file
- 2. Come rimuovere tutti i file con estensione specifica nella cartella?
- 3. Trova tutti i file in una cartella
- 4. Apertura trova nella cartella di componente aggiuntivo
- 5. Trova e rinomina i file senza estensione?
- 6. Trova tutti i file .php nella cartella in modo ricorsivo
- 7. Copia tutti i file con una certa estensione da tutte le sottodirectory
- 8. Salva file con file_put_contents nella cartella
- 9. È possibile escludere una cartella da Dropbox (anche se si trova nella cartella Dropbox)?
- 10. Come memorizzare un file con estensione di file con multer?
- 11. Eliminare tutte le cartelle e le sottodirectory che non hanno un file di certa estensione
- 12. File recenti nella cartella
- 13. In Python, il modo più veloce per creare un elenco di file in una directory con una certa estensione
- 14. Trova il file più vecchio in una cartella utilizzando PHP
- 15. Trova la cartella Vagrantfile
- 16. Accesso al file nella cartella WebContent da un servlet
- 17. Trova la data più vicina a una certa data
- 18. L'avvio di primavera non trova index.html nella cartella webapp
- 19. Salvataggio di file nella cartella temporanea
- 20. Estensione file filtro con FileUpload
- 21. jQuery - ottenere l'indice di un elemento con una certa classe
- 22. Copia file nella cartella delle risorse
- 23. TCPDF Salva il file nella cartella?
- 24. Rinomina tutti i file nella cartella con numeri crescenti
- 25. Ottieni l'elenco dei nomi di file nella cartella con Javascript
- 26. UnauthorizedAccessException con percorso al file nella cartella temp dall'archivio Zip
- 27. WebDAV - Richiesta "Mostra file nella cartella"?
- 28. Rinominare i file nella cartella C#
- 29. Inserimento di file js nella cartella Viste
- 30. C#: file di configurazione nella cartella bin \ debug
Grazie! Tutte le risposte erano buone, ma prima hai risposto così ... sì :) – DMan
Questo non funziona se l'estensione sarebbe qualcosa come txt_. Sto cercando di determinare se ci sono dei file * .exe in una cartella, e ho solo un file * .exe_, ma la query lo restituisce, che non è corretto. – Adrian
La documentazione: https://msdn.microsoft.com/en-us/library/8he88b63(v=vs.110).aspx –