Biorąc pod uwagę ścieżkę folderu (np. C: \ Losowy folder), w jaki sposób mogę znaleźć plik, który zawiera określone rozszerzenie, np. Txt? Zakładam, że będę musiał wyszukać plik * .txt w katalogu, ale nie jestem pewien, jak mam zacząć to wyszukiwanie w pierwszej kolejności.Znajdź plik z określonym rozszerzeniem w folderze
Odpowiedz
Spójrz na klasę System.IO.Directory
i metodę statyczną GetFiles
. Ma przeciążenie, które akceptuje ścieżkę i wzorzec wyszukiwania. Przykład:
string[] files = System.IO.Directory.GetFiles(path, "*.txt");
Można użyć klasy
Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories)
To nie działa, jeśli rozszerzenie będzie podobne do txt_ lub cokolwiek innego, jak podano w dokumentacja https://msdn.microsoft.com/en-us/library/wz42302f(v=vs.110).aspx –
Jest to dość proste, w rzeczywistości Directory. Możesz użyć klasy System.IO.Directory
w połączeniu z System.IO.Path
. Coś jak (używając LINQ jeszcze bardziej ułatwia):
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));
Oczywiście istnieje wiele odmian tej techniki. Niektóre inne odpowiedzi są prostsze, jeśli filtr jest prostszy. Ta ma zaletę opóźnionego wyliczenia (jeśli to ma znaczenie) i bardziej elastycznego filtrowania kosztem większej ilości kodu.
Dziękuję za wszystkie dodatkowe prace, które włożysz w to. Jednak idę do prostego oświadczenia, ponieważ mam tylko jeden plik tekstowy w katalogu (został wyodrębniony przez mój program). – DMan
metody poniżej zwraca tylko pliki z określonym rozszerzeniem (np: plik z rozszerzeniem .txt, ale nie .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));
}
Według mojego rozeznania, można to zrobić na dwa sposoby:
1) Możesz użyć klasy Directory z metodą Getfiles i przechodzić przez wszystkie pliki, aby sprawdzić nasze wymagane rozszerzenie.
Directory.GetFiles ("your_folder_path) [i] .Contains (" *. Txt ")
2) Można użyć klasy drogi metodą GetExtension która przyjmuje ścieżkę pliku jako parametr i weryfikuje extension.To uzyskać ścieżkę do pliku, wystarczy mieć pętli warunek, który będzie pobierał jeden plik i zwrotu filepath które mogą być wykorzystane do weryfikacji.
Path.GetExtension (your_file_path) .equals („” json)
Uwaga: Obie logiki muszą znajdować się w stanie pętli.
Ten kod służy do odczytu pliku z wszystkimi typami plików rozszerzeń.
string[] sDirectoryInfo = Directory.GetFiles(SourcePath, "*.*");
- 1. Jak usunąć wszystkie pliki z określonym rozszerzeniem w folderze?
- 2. Java: Znajdź pliki .txt w określonym folderze
- 3. Jak utworzyć plik wsadowy do wyszukiwania plików z określonym rozszerzeniem w folderze?
- 4. Phonegap: Utwórz plik w określonym folderze
- 5. Sprawdź, czy katalog zawiera plik z określonym rozszerzeniem
- 6. Python: Znajdź najnowszy plik z rozszerzeniem .MP3 w katalogu
- 7. Znajdź wszystkie pliki w folderze
- 8. Wysublimowany tekst 2 znajduje się w folderze z rozszerzeniem pliku
- 9. Uniemożliwianie dostępu do plików w określonym folderze
- 10. Używanie R do wypisania wszystkich plików z określonym rozszerzeniem
- 11. Git ignorować folderu z wyjątkiem niektórych plików z określonym rozszerzeniem
- 12. Dodawanie widoku perspektywy w określonym folderze
- 13. Android: jak pobrać plik z serwera i zapisać go w określonym folderze w sdcard
- 14. Zapisz plik z odpowiednim rozszerzeniem w wierszu Zapisz plik
- 15. Znajdź wszystkie klasy z określonym Attribut
- 16. sprawdzanie, czy plik istnieje w określonym katalogu
- 17. Zapisz plik z file_put_contents w folderze
- 18. Jak zapisać plik z rozszerzeniem pliku za pomocą multer?
- 19. Znajdź wszystkie pliki .php w folderze rekursywnie
- 20. Znajdź rodziców elementu w określonym div
- 21. Utwórz plik w określonym katalogu
- 22. Jak mogę utworzyć listę plików w bieżącym katalogu i jego podkatalogach z określonym rozszerzeniem?
- 23. Przeczytaj plik spakowany z rozszerzeniem do Chrome w skrypcie treści
- 24. HTMLmin - Jak dynamicznie kompresować wszystkie pliki w określonym folderze
- 25. Grunt - usuń wszystkie pliki i pliki w podkatalogach z określonym rozszerzeniem pliku
- 26. Znajdź element przed i po określonym elemencie
- 27. Jak zachować wszystkie aplikacje django w określonym folderze
- 28. Lista obiektów w określonym folderze na Amazon S3
- 29. JSESSIONID z rozszerzeniem .undefined
- 30. Używanie git, aby zobaczyć wszystkie dzienniki związane z określonym rozszerzeniem pliku w podkatalogach
Dzięki! Wszystkie odpowiedzi były dobre, ale najpierw odpowiedziałeś, więc ... tak :) – DMan
To nie działa, jeśli rozszerzenie będzie podobne do txt_. Próbuję ustalić, czy istnieje jakiś plik * .exe w folderze i mam tylko jeden plik * .exe_, ale zapytanie zwraca go, co nie jest poprawne. – Adrian
Dokumentacja: https://msdn.microsoft.com/en-us/library/8he88b63(v=vs.110).aspx –