2012-10-25 22 views
5
Bu fonksiyonu kullanmak

yineleme sırasında, seçilen dizindeki tüm exe dosyaları aramak için:Güncelleme ilerleme çubuğu dosya yapısı

public static IEnumerable<string> GetFiles(string root, string searchPattern) 
{ 
    Stack<string> pending = new Stack<string>(); 
    pending.Push(root); 
    while (pending.Count != 0) 
    { 
     var path = pending.Pop(); 
     string[] next = null; 
     try 
     { 
      next = Directory.GetFiles(path, searchPattern); 
     } 
     catch { } 
     if (next != null && next.Length != 0) 
      foreach (var file in next) yield return file; 
     try 
     { 
      next = Directory.GetDirectories(path); 
      foreach (var subdir in next) pending.Push(subdir); 
     } 
     catch { } 
    } 
} 

nasıl bulunan dosya sayısına bağlı olarak ilerleme çubuğu durumunu güncelleyebilirsiniz?

+0

Bu bir wpf uygulaması mı? –

+2

Toplam dosya sayısını bilmediğinizden (veya toplam dosya sayısını bilmedikçe), şimdiye kadar bulduğunuz toplamın ne olduğunu tam olarak bilmediğinizi bilmeniz gerekir. Sadece bir seçim çubuğu kullanın. – Servy

+0

no, standart pencereleri, VS 2010 – user1775334

cevap

0

Arama yapmak ve daha sonra, ilerleme çubuğunu bulunan dosya sayısına ayarlamak istiyorsunuz.

Ardından

progressBar.Maximum set bulundu dosyaların # için değerini bir = atayan bir sayaç atayabilirsiniz = a;

+0

Bir örnek yazabilir misiniz? Teşekkürler. – user1775334

+2

Yaptığı iş sadece dosyaları bulmak. Her şey bitene kadar maksimum şeyin ne olduğunu bilmeyecek. – Servy

+0

Bu, iki kez etrafa sarmayı ve maksimum dosya sayısını elde etmek için tüm dosyaları bulmayı ve daha sonra, toplam dosyaları aramaya 'taklit' etmeyi gerektirir. Onun en iyi bahsi Dosya Bulunan bir etiketli bir seçim çubuğu. – Pichu

0

Belki de burada bir şeyleri özlüyorum, ancak neden ilerleme çubuğunun Maksimum değerini pending.Count'a atamıyorsunuz ve bir dosyaya her işlem yaptığınızda ilerleme çubuğunun değerine 1 eklemiyorsunuz?

1

Temel olarak, bulduğunuz exe dosyalarının toplam sayısını (aka% 100) bilmiyorsunuzdur, temel olarak bir ilerleme çubuğu oluşturamazsınız! Bu tür görevler için bir kum saati veya bir seçim çubuğu daha uygun olurdu ...