Wiesz, że w Linuksie jest to łatwe, ale nie mogę po prostu zrozumieć, jak to zrobić w języku C# w systemie Windows. Chcę usunąć wszystkie pliki pasujące do symbolu wieloznacznego f*.txt
. Jak mam to zrobić?Usuwanie wielu plików za pomocą symbolu wieloznacznego
57
A
Odpowiedz
117
Można użyć DirectoryInfo.EnumerateFiles
function:
var dir = new DirectoryInfo(directoryPath);
foreach (var file in dir.EnumerateFiles("f*.txt")) {
file.Delete();
}
(. Oczywiście, prawdopodobnie będziesz chciał dodać obsługę błędów)
8
Możesz użyć metody Directory.GetFiles z przeciążeniem ze znakiem wieloznacznym. Spowoduje to zwrócenie wszystkich nazw plików pasujących do twojego wzorca. Następnie możesz usunąć te pliki.
33
wiem, że to już odpowiedział z dobrą odpowiedzią, ale istnieje alternatywa w .NET 4.0 i wyższej. Użyj Directory.EnumerateFiles()
, a więc:
foreach (string f in Directory.EnumerateFiles(myDirectory,"f*.txt"))
{
File.Delete(f);
}
Wadą DirectoryInfo.GetFiles()
jest to, że zwraca listę plików, które - 99,9% czasu jest wielka. Wadą jest to, że folder zawiera dziesiątki tysięcy plików (co jest rzadkie), a następnie staje się bardzo powolny i wyliczanie za pomocą pasujących plików jest znacznie szybsze.
Powiązane problemy
- 1. Usuwanie plików za pomocą symbolu wieloznacznego w języku Laravel
- 2. Kolekcje Java za pomocą symbolu wieloznacznego
- 3. Sprawdź, czy plik istnieje, używając symbolu wieloznacznego:
- 4. Jak wyszukać listę plików przy użyciu symbolu wieloznacznego?
- 5. Psycopg2 przy użyciu symbolu wieloznacznego powoduje TypeError
- 6. Jaki jest wpływ nadchodzący z symbolu wieloznacznego%
- 7. Przesyłanie wielu plików za pomocą jQuery
- 8. Przesyłanie wielu plików za pomocą cURL
- 9. Dodawanie wielu plików za pomocą JFileChooser
- 10. zapisywanie wielu plików za pomocą xcopy
- 11. .gitignore nie rozpoznaje symbolu wieloznacznego mojego folderu w systemie Windows
- 12. Usuwanie wielu plików pasujących do wzorca
- 13. łączenie wielu plików tekstowych i usuwanie duplikatów.
- 14. Usuwanie plików przy użyciu symboli wieloznacznych - exec vs unlink
- 15. użyj symbolu wieloznacznego do dopasowania atrybutu w ścieżce xpath
- 16. Instalowanie zaktualizowanego symbolu wieloznacznego PFX w magazynie kluczy tomcat
- 17. Używanie symbolu wieloznacznego w prefiksie powiadomień o zdarzeniu S3
- 18. Usuwanie wielu spacji i spacji za pomocą gsub
- 19. Usuwanie pojedynczych plików po wybraniu wielu plików przy wprowadzaniu pliku
- 20. Usuwanie wszystkich plików w katalogu za pomocą Pythona
- 21. Pobieranie i usuwanie plików zdalnych za pomocą lftp
- 22. Przesyłanie wielu plików do różnych adresów URL za pomocą przesyłania plików za pomocą narzędzia ng2
- 23. Ustaw krycie symbolu legendy za pomocą matplotlib?
- 24. Szyny/specyfikacja fill_in za pomocą symbolu zastępczego
- 25. Rekursywne usuwanie ukrytych plików
- 26. Najszybszy sposób na bruteforce string za pomocą znaku wieloznacznego DOS
- 27. Usuwanie duplikatów za pomocą PigLatin
- 28. Usuwanie znaków za pomocą przycisku
- 29. Usuwanie elementu za pomocą imacro
- 30. Przesyłanie wielu plików za formData()
Należy zauważyć, że 'DirectoryInfo' ma również' EnumerateFiles() '. – TrueWill
Jeśli ktoś zastanawia się, dlaczego ta odpowiedź jest tak podobna do przyjętej odpowiedzi, to dlatego, że zaakceptowana odpowiedź została przepisana w świetle tego. To wstyd, ponieważ użycie 'DirectoryInfo.GetFiles()' (która była oryginalną odpowiedzią) jest jedynym sposobem, aby zrobić to dla wcześniejszych wersji .NET. –