Bir klasör yolu (C: \ Random Klasörü gibi) verildiğinde, içinde txt gibi belirli bir uzantıya sahip bir dosyayı nasıl bulabilirim? Dizinde * .txt için bir arama yapmak zorunda kalacağım, ancak bu aramayı ilk etapta nasıl başlatacağımı bilmiyorum.Klasörde belirli bir uzantıya sahip bir dosya bulun
cevap
System.IO.Directory
sınıfına ve GetFiles
statik yöntemine bakın. Bir yolu ve bir arama modelini kabul eden bir aşırı yük var. Örnek:
string[] files = System.IO.Directory.GetFiles(path, "*.txt");
Sen Directory sınıf
Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories)
Uzantı, txt_ gibi bir şey ya da belgelere https://msdn.microsoft.com/en-us/library/wz42302f(v=vs.110).aspx –
Bu oldukça kolay aslında kullanabilirsiniz. sınıfını System.IO.Path
ile birlikte kullanabilirsiniz. Böyle bir şey (kullanarak LINQ daha da kolay hale getirir):
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));
elbette çok bu tekniği birçok varyasyonu vardır. Filtreniz daha basitse diğer cevaplardan bazıları daha basittir. Bu, gecikmiş numaralandırma (bu önemliyse) ve daha fazla kod pahasına daha esnek filtreleme avantajına sahiptir. Belirli uzantılı
Bunu eklediğiniz tüm ekstra işler için teşekkürler. Ancak, sadece bir metin dosyasına sahip olduğumdan (programım tarafından çıkarılmıştı) sadece basit bir açıklama yapacağım. – DMan
getiri altında yöntem yalnızca dosyaları (örn: .txt dosya değil .txt1):
benim anlayış gereğince
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));
}
, bu iki şekilde yapılabilir 1) Dizin Sınıfı'nı Getfiles yöntemiyle kullanabilir ve gerekli uzantılarımızı kontrol etmek için tüm dosyalara geçebilirsiniz.
Directory.GetFiles ("your_folder_path) [i] .Contains (" *. Txt ")
2) Bir parametre ve doğrular olarak dosya yolunu alır GetExtension Yöntemi ile Yol Class kullanabilirsiniz extension.To dosya yolunu almak, sadece tek bir dosya getirmesi ve doğrulama için kullanılabilir dosyayolu dönecektir bir döngü durumunu var.
Path.GetExtension (your_file_path) .Equals ("json")
Not: Her iki mantık da döngü koşulunda olmalıdır.
Tüm kod dosya türleriyle birlikte bu dosya için bu kodu kullanın.
string[] sDirectoryInfo = Directory.GetFiles(SourcePath, "*.*");
- 1. Bash'da belirli bir uzantıya sahip nasıl geçici dosya oluşturabilirim?
- 2. Özel uzantıya sahip bir dosya nasıl kaydedilir?
- 3. SaveFileDialog sadece belirli bir uzantıya
- 4. VSCode ağaç görünümünde belirli bir uzantıya sahip dosyalar nasıl gizlenir
- 5. Bir klasör içinde belirli bir uzantıya sahip dosya (lar) aramak için nasıl toplu iş dosyası oluşturabilirim?
- 6. Belirli bir boyuta sahip yeni dosya oluştur
- 7. Sublime Text Editor'da belirli uzantıya sahip dosyaları gizle.
- 8. Belirli bir uzantıya sahip dosyaların yedeklemesini kapatmak için bir Emacs değişkeni var mı?
- 9. Git'de belirli bir uzantıya sahip olanlar dışındaki tüm dosyaları nasıl yok sayabilirim?
- 10. WPF. Belirli bir özelliğe bağlanan denetimi bulun
- 11. Belirli bir satırı değiştiren birleştirme işlemini bulun.
- 12. Bir modelle eşleşen bir özelliğe sahip bir öğe bulun
- 13. nm ile bir sembolün dosya ofsetini bulun
- 14. VBA - Belirli bir üstbilgiye sahip bir sütun bulun ve bu sütundaki tüm satırların toplamını bul
- 15. Dosyaya belirli bir dosya adı ve uzantı yüklenmesine izin veriliyor
- 16. jQuery: Özel bir özel niteliğe sahip öğeyi bulun
- 17. Git deposundan uzantıya sahip tüm dosyaları kaldırın ve yok sayın
- 18. Bir dosya adı ile tüm dosyaları, binlerce dosyayla eşleşebilecek belirli bir dizeyle başlayarak bulun.
- 19. Belirli bir klasörde Kubernetes'i kullanmak için OpenShift'e söyle
- 20. Dosya bir klasörde var mı, yoksa bulunmuyor mu?
- 21. Bir dosya altında belirli bir dosya uzantısının Chmod izni SSH aracılığıyla
- 22. Chrome uzantısı: sayfadaki bir etkinliği dinlemek için bir uzantıya sahip misiniz?
- 23. Klasörde eksik dosya numaralarını bulma kodu
- 24. Başka bir uzantıya ihtiyaç duyan Python'a bir C uzantısı yapmak
- 25. Belirli bir adın dosyalarını düzenli olarak arayın ve belirli bir deyimin örneklerini bulun VE bu dosyanın yolunu görüntüleyin
- 26. Her bir anahtar için maksimum değere sahip satırı bulun
- 27. Başka bir sütunda aynı değerlere sahip satırları bulun - Python
- 28. Varlık kataloğunda bir klasörde referans görüntü alma
- 29. jQuery Belirli bir CSS'ye sahip Öğeler'i seçin
- 30. Belirli bir kategori düzeyine sahip olun
Teşekkürler! Bütün cevaplar iyiydi, ama önce cevap verdin ... evet :) – DMan
Eğer uzantı txt_ gibi bir şeyse işe yaramaz. Bir klasörde herhangi bir * .exe dosyası olup olmadığını belirlemeye çalışıyorum ve sadece bir * .exe_ dosyası var, ancak sorgu, doğru değil, onu döndürür. – Adrian
Belgeler: https://msdn.microsoft.com/en-us/library/8he88b63(v=vs.110).aspx –