C # .net içindeki bir dizindeki tüm dosyalar arasında nasıl döngü yapılır?


121

Dosyaları klasörde ve ayrıca alt klasörlerinde almak istiyorum.Aşağıdaki kod, alt klasöründeki dosyaları almaz:

string[] files = Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs");

Biri bana bunu c # .net içinde nasıl uygulayacağımı söyleyebilir mi?


2
Her zaman bir şeyler yapmak için MSDN yöntemini tercih ettim. Bu bağlantının altında, bir konsol programı (C #) ile özyinelemeli bir örnek sağlarlar.
Justin

1
@Panuvin - Not: MSDN kodu biraz tehlikelidir. Çok büyük klasör ve alt klasör içeriği için (birçok dosya) bir StackOverflow istisnası alabilirsiniz (özyinelemeli kod nedeniyle)
Joezer

Yanıtlar:


217
string[] files = 
    Directory.GetFiles(txtPath.Text, "*ProfileHandler.cs", SearchOption.AllDirectories);

Bu son parametre, bahsettiğiniz şeyi tam olarak etkiler. Olarak ayarlayın AllDirectories alt klasörlerde dahil olmak üzere her dosya için ve ayarlayın TopDirectoryOnly sadece alt klasörler verilen değil dizinde aramak isterseniz.

Ayrıntılar için MDSN'ye bakın: https://msdn.microsoft.com/en-us/library/ms143316(v=vs.110).aspx


5
Klasör yapınızda bir döngü varsa bu sonsuz döngü olacaktır. Bkz. Msdn.microsoft.com/en-us/library/ms143448.aspx
Anthony Wieser

Orta parametrenin amacı nedir?
usefulBee

2
Buna searchPattern denir ve dosyaların seçildiği bir filtredir. Bu durumda, "ProfileHandler.cs" ile biten tüm dosyaları seçecektir. MDSN'ye
Migwell

3

aşağıdaki kodu deneyin

Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs",SearchOption.AllDirectories)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.