मैं FileSystemWatcher उपयोग कर रहा हूँ एक फ़ोल्डर जहाँ फ़ाइलों वेब अनुप्रयोग से अपलोड किया जा रहा है स्कैन करने के लिए। मेरे पास फ़ोल्डर में 1000 से अधिक फाइलें अपलोड की जा रही हैं। अब, समस्या यह है कि फ़ाइल सिस्टम सिस्टम प्रारंभ होता है जब पहली फ़ाइल की प्रतिलिपि बनाई जाती है, कभी-कभी, यह सभी फ़ाइलों के लिए काम नहीं करती है। कोई भी सुझाव अत्यधिक सराहनीय होगा।FileSystemWatcher काम नहीं कर ठीक से
उत्तर
FileSystemWatcher
documentation का कहना है कि (जोर मेरा):
विंडोज ऑपरेटिंग सिस्टम फ़ाइल के अपने घटक FileSystemWatcher द्वारा बनाई गई एक बफर में आने वाले बदलाव सूचित करता है। कम समय में कई परिवर्तन होते हैं, तो बफर अतिप्रवाह कर सकते हैं। यह घटक निर्देशिका में परिवर्तनों का ट्रैक खोने के लिए कारण बनता है, और यह केवल कंबल अधिसूचना प्रदान करेगा। के साथ बफर के आकार को बढ़ाने के लिए InternalBufferSize प्रॉपर्टी महंगी है, क्योंकि यह गैर-पजेड मेमोरी से आता है जिसे डिस्क पर नहीं बदला जा सकता है, इसलिए बफर को तब तक छोटा रखें जितना कि कोई भी फ़ाइल परिवर्तन ईवेंट याद न करें। एक बफर अतिप्रवाह से बचने के लिए NotifyFilter और IncludeSubdirectories गुणों का उपयोग करें ताकि आप बाहर अवांछित परिवर्तन सूचनाएं फ़िल्टर कर सकते हैं।
।
नोट जब बफर आकार पार हो गई है एक FileSystemWatcher एक घटना छूट सकती हैं। लापता घटनाओं से बचने के लिए इन दिशानिर्देशों का पालन करें:
InternalBufferSize संपत्ति की स्थापना द्वारा बफर आकार बढ़ाएँ।
लंबे फ़ाइल नामों वाली फ़ाइलों को देखने से बचें, क्योंकि लंबी फ़ाइल नाम बफर भरने में योगदान देता है। छोटे नामों का उपयोग करके इन फ़ाइलों का नाम बदलने पर विचार करें।
यथासंभव कम अपने ईवेंट प्रबंधन कोड रखें।
आप ऊपर की कोशिश की है और यह अभी भी आप के लिए पर्याप्त विश्वसनीय नहीं है, तो मैं डर एकमात्र समाधान Error
घटना की सदस्यता और मैन्युअल निर्देशिका सामग्री की गणना जब भी यह होता है करने के लिए किया जाएगा हूँ।
जॉन की जवाब पर विस्तार से बता दें:
वहाँ घटित से एक बफर अतिप्रवाह स्थगित करने के लिए एक और संभव समाधान है। आपके द्वारा मॉनीटर की जाने वाली घटनाओं को संभालने के द्वारा, उदाहरण के लिए बनाई गई घटना, जितनी जल्दी हो सके आप बफर से ईवेंट से जुड़ी जानकारी को हटा दें ताकि वह इस स्पेस को पुनः प्राप्त कर सके।
इसे गति देने के लिए आप फ़ाइलों को अतुल्यकालिक रूप से संसाधित करने का विकल्प चुन सकते हैं। जैसे ही ईवेंट ट्रिगर होता है, आप कतार में फ़ाइल के पूर्ण पथ को कतार देते हैं जो बदले में एक कार्यकर्ता थ्रेड द्वारा संसाधित किया जाएगा। बनाए गए ईवेंट से जुड़े ईवेंट हैंडलर का कर्तव्य एक कतार में एक स्ट्रिंग (फ़ाइल पथ) जोड़ने के लिए कम हो जाता है।
उदाहरण के लिए:
public class FileProcessor
{
private readonly Queue<string> files = new Queue<string>();
public void EnqueueFile(string path)
{
files.Enqueue(path);
}
}
घटना को बनाया घटना से जुड़ी हैंडलर के लिए कोड तो यह करने के लिए कम किया जा सकता:
static void file_Created(object sender, FileSystemEventArgs e)
{
_fileProcessor.EnqueueFile(e.FullPath);
}
आप इस (सहित नमूना कोड के बारे में अधिक जानकारी पा सकते हैं) एक पोस्ट में मैं लगभग दो साल पहले लिखा था:
- 1. ए * एल्गोरिदम ठीक से काम नहीं कर रहा है
- 2. ऑनक्लिक श्रोता ठीक से काम नहीं कर रहा है ..?
- 3. केकेएफपी AJAX ठीक से काम नहीं कर रहा है
- 4. सीएसएस - जेड-इंडेक्स ठीक से काम नहीं कर रहा है
- 5. एंड्रॉइड पॉपअपविंडो शोएएसड्रॉपडाउन() ठीक से काम नहीं कर रहा है
- 6. ऑटोस्टार्ट एप्लिकेशन ठीक से काम नहीं कर रहा है
- 7. फ़ॉन्ट-वज़न ठीक से काम नहीं कर रहा है?
- 8. जावास्क्रिप्ट डोम style.backgroundColor काम नहीं कर ठीक से
- 9. डब्ल्यूपीएफ डाटाग्रिड वर्चुअलाइजेशन ठीक से काम नहीं कर रहा है?
- 10. एंबेडेड जेट्टी ठीक से काम नहीं कर रहा है
- 11. डेल्फी XE2 EnumWindows ठीक से काम नहीं कर रहे हैं
- 12. एंड्रॉयड काम नहीं कर रहा weightSum ठीक से
- 13. जावास्क्रिप्ट accordion/css ठीक से काम नहीं कर रहा है
- 14. html_entity_decode() ठीक से काम नहीं कर रहा है?
- 15. कंसोल में jQuery ठीक से काम नहीं कर रहा है
- 16. FileSystemWatcher
- 17. Zend_Validate_Date बस ठीक से काम नहीं करता
- 18. DOM getElementbyId ठीक से काम नहीं करता
- 19. LinearLayout addView ठीक से काम नहीं करता
- 20. सूची। सामग्री ठीक से काम नहीं करती
- 21. छवि फसल आईओएस 6.0 में ठीक से काम नहीं कर रही है। सिम्युलेटर में ठीक काम करना।
- 22. jquery ट्रिगर धुंध ठीक काम नहीं कर रहा है?
- 23. codeigniter sess_destroy() ठीक से काम नहीं कर रहा है, मैं क्या गलत कर रहा हूँ?
- 24. पायथन वॉचडॉग स्क्रिप्ट ठीक से काम नहीं करती है
- 25. jQuery बाहरी हाइट ठीक से काम नहीं करता है?
- 26. प्लेसहोल्डर सभी ब्राउज़रों में ठीक से काम नहीं
- 27. सी # - StreamReader.ReadLine ठीक से काम नहीं करता है!
- 28. सीएसएस संक्रमण आसानी से काम नहीं कर
- 29. लोडडाटा टाइमस्टैम्प और टाइमज़ोन से ठीक से काम नहीं कर रहा है
- 30. ट्विटर-बूटस्ट्रैप: दो ड्रॉपडाउन-टॉगल बटन एक तरफ से ठीक से काम नहीं कर रहे हैं