2012-10-25 20 views
5

मैं इस सुविधा का उपयोग पुनरावृत्ति, चयनित निर्देशिका में सभी exe फ़ाइलों के लिए खोज करने के लिए:अद्यतन प्रगति बार, जबकि फ़ाइल संरचना

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 { } 
    } 
} 

मैं प्रगति बार स्थिति, फ़ाइलों की संख्या के आधार पर कैसे कर सकते हैं पाया?

+0

क्या यह एक wpf ऐप है? –

+2

चूंकि आप फ़ाइलों की कुल संख्या नहीं जानते हैं (या मुझे कहना चाहिए, जब तक कि आप फाइलों की कुल संख्या नहीं जानते) यह जानकर कि अब तक आपने कितने पाया है, आपको यह नहीं बताता कि आप कितने% पूर्ण हैं। बस एक मार्की बार का उपयोग करें। – Servy

+0

नहीं, इसकी मानक विंडोज़ वीएस 2010 – user1775334

उत्तर

0

आप खोजना चाहते हैं और उसके बाद प्रोग्रेसबार को अधिकतम फ़ाइलों की संख्या में सेट करना चाहते हैं।

आप एक काउंटर है कि फाइलों की # तो

progressBar.Maximum सेट पाया के लिए मूल्य एक = प्रदान करती है प्रदान कर सकते हैं एक =;

+0

क्या आप एक उदाहरण लिख सकते हैं? धन्यवाद। – user1775334

+2

वह काम जो वह कर रहा है वह बस फाइल ढूंढ रहा है। वह तब तक नहीं जानता जब तक कि वह पूरा नहीं हो जाता है। – Servy

+0

इसे अधिकतम फाइलों को खोजने के लिए अधिकतम और फिर वास्तव में 'नाटक' करने के लिए कुल फ़ाइलों को खोजने के लिए दो बार लपेटने की आवश्यकता होगी। उनकी सर्वश्रेष्ठ शर्त फ़ाइल मिली के लेबल # के साथ एक मार्की बार है। – Pichu

0

शायद मुझे यहां कुछ याद आ रहा है, लेकिन आप प्रगति पट्टी का अधिकतम pending.Count क्यों नहीं आवंटित करते हैं और जब भी आप फ़ाइल संसाधित करते हैं तो प्रगति पट्टी के मूल्य में 1 जोड़ते हैं?

1

बिंदु यह है कि आप exe फ़ाइलों की कुल संख्या (100% उर्फ) नहीं जानते हैं जो आपको मूल रूप से मिल जाएगा, आप प्रगति पट्टी प्रस्तुत नहीं कर सकते! इस तरह के कार्यों के लिए यह एक घंटे का चश्मा या मार्की बार अधिक उपयुक्त होगा ...

संबंधित मुद्दे