LINQ ve dosya dizinleri
Pek çok dosya sistemi işlemleri aslında sorgular ve bu nedenle için uygun LINQ bir yaklaşım.
[!NOT]
Birden çok türde dosya ve belgelerin içeriğini programlı sorgular gerçekleştirmek istiyorsanız, kullanmayı Windows masaüstü arama motoru.İle şu anda sorgulanamıyor rağmen LINQ, karmaşıklık dosya sisteminin etkin bir şekilde yöneten güçlü bir dizin oluşturma hizmeti sağlar.
Bu bölümdeki sorguların dönüştürmede olduğuna dikkat edin.Özgün dosya veya klasörlerin içeriğini değiştirmek için kullanılmaz.Bu sorgu herhangi bir yan etkilere neden olmamalıdır kuralı izler.Genel olarak, kaynak verileri değiştiren (gerçekleştirmek de dahil olmak üzere sorgular oluşturma / update / işleçleri delete) herhangi bir kod yalnızca veri sorgular kodundan ayrı tutulmalıdır.
Bu bölüm aşağıdaki konuları içerir:
Nasıl yapılır: Sorgu belirtilen öznitelik veya adı olan dosyaları
Bir veya daha fazla özelliklerini inceleyerek dosyaları aramak nasıl gösterir, FileInfo nesne.Nasıl yapılır: Grup dosya uzantısı (LINQ)
Gruplarının dönmek gösterilmiştir FileInfo nesne dosya adı uzantısına göre.Nasıl yapılır: sorgu (LINQ) klasörler kümesi bayt toplam sayısı
Belirtilen dizin ağacındaki tüm dosyalardaki toplam bayt sayısını döndürmek nasıl gösterir.Nasıl yapılır: iki klasör (LINQ)'ün içeriklerini karşılaştırırs
İki belirtilen klasörlerde bulunan tüm dosyaları ve tek bir klasörde ancak diğer varsa da tüm dosyaları geri dönmek gösterilmiştir.Nasıl yapılır: sorgu için en büyük dosya veya dosyaların bir dizin ağacında (LINQ)
En büyük veya en küçük dosya veya dosyaları, belirli sayıda bir dizin ağacında dönmek gösterilmiştir.Nasıl yapılır: sorgu yinelenen dosyaların bir dizin ağacında (LINQ)
Belirtilen dizin ağacında birden fazla yerde ortaya çıkan tüm dosya adları için Grup gösterilmiştir.Ayrıca nasıl yapılacağı üzerinde özel bir karşılaştırıcısı göre daha karmaşık karşılaştırmaları gösterir.Nasıl yapılır: sorgu (LINQ) bir klasördeki dosyaların içeriğini
Klasör ağacındaki yinelemenize, her dosyayı açın ve dosyanın içeriğini sorgulamak gösterilmiştir.
Comments
Bazı karmaşıklık söz konusu dosya sisteminin içeriğini temsil eder ve özel durumları düzgün biçimde işler doğru bir veri kaynağı oluşturmak.Bu bölümdeki örnekler anlık topluluğu oluşturmak FileInfo belirtilen kök klasörü altındaki tüm dosya ve alt klasörleri temsil eden nesneler.Her birinin gerçek durumunu FileInfo ne zaman başladığı ve sona bir sorguyu yürüttükten arasında zaman içinde değişebilir.Örneğin, bir listesini oluşturabilirsiniz FileInfo veri kaynağı olarak kullanmak için nesneler.Erişmeye çalışırsanız, Length özelliği bir sorgu FileInfo değerini güncelleştirmek için dosya sistemine erişmek nesne çalýþýlýr Length.Dosya artık yoksa, elde edersiniz bir FileNotFoundException , sorgunuzda bile değil sorguladığınız dosya sistemi doğrudan.Bu bölümdeki bazı sorgular tüketir, bazı durumlarda belirli aşağıdaki özel durumlar dışında ayrı bir yöntem kullanın.Başka bir seçeneği kullanarak dinamik olarak güncelleştirilen veri kaynağınız saklamaktır FileSystemWatcher.