2012-05-04 8 views
7

क्या FileSystemWatcher.OnDeleted ईवेंट का उपयोग करते समय इसे हटाए जाने से पहले फ़ाइल तक पहुंच बनाना संभव है?हटाए जाने से पहले फ़ाइल एक्सेस करें

मैं अपने मेटाडेटा में दस्तावेज़ के बारे में कुछ डेटा संग्रहीत कर रहा हूं और इसे हटाए जाने से पहले मुझे उस जानकारी की आवश्यकता है।

कोई विचार यह है कि यह FileSystemWatcher के साथ या बिना इसे पूरा करने के लिए कैसे संभव है?

अद्यतन: //

मैंने महसूस किया कि फ़ाइल में डेटा संग्रहीत बुरा है के रूप में मैं इसे उपयोग नहीं कर सकते जब फ़ाइल हटा दी जाती है।

समाधान: एक स्थानीय डेटाबेस में डेटा (SQLite/xml या ऐसा ही कुछ) स्टोर करने के लिए मेरे एप्लिकेशन को फिर से लिखने के रूप में मैं पूरा पथ और नाम/नाम दिया/अद्यतन/नष्ट कर दिया जब फ़ाइल बनाया जा रहा है यह होगा फ़ाइल के लिए डेटाबेस रिकॉर्ड अद्यतन करना आसान हो।

विचारों और सुझावों के लिए सभी को धन्यवाद!

+0

मैं लगभग इतना कहना चाहता हूं कि आप ऐसा नहीं कर सकते क्योंकि फ़ाइल को हटा दिए जाने के बाद ईवेंट आग लग जाती है। मुझे विश्वास नहीं है कि एफएसडब्ल्यू घटना के बारे में तब तक जान सकता है जब तक कि यह पूरा नहीं हो जाता है, क्योंकि इसका मतलब यह होगा कि प्री-डिलीट को भी निकाल दिया जाएगा और उसे कैप्चर करने की आवश्यकता होगी, और उसके बाद आप फ़ाइल पर लॉक बनाने की अनुमति देंगे। –

+0

मुझे नहीं लगता कि यह केवल 'फाइलसिस्टम वाटर' के साथ संभव है। मुझे यकीन नहीं है कि विंडोज़ निम्न-स्तरीय हुक की अनुमति देता है (हालांकि मुझे शक है।) – dlev

+0

आपको ईवेंटहैंडर से पूरा नाम मिल जाएगा। फ़ाइल को पुनर्स्थापित करने के लिए इसका उपयोग करें, इसे अदृश्य बनाएं, इसे पढ़ें, और इसे हटाएं। हैकिश और मूर्खतापूर्ण नहीं, लेकिन अभी भी कुछ: http://stackoverflow.com/questions/2837307/recovering-deleted-file-on-windows – nawfal

उत्तर

2

फ़ाइलसिस्टम वाटर.ऑन हटाए गए ईवेंट का उपयोग करते समय इसे हटाए जाने से पहले फ़ाइल को एक्सेस करना संभव है?

ईवेंट को हटाए जाने के बाद ईवेंट ट्रिगर किया गया है, इसलिए जब आप इस ईवेंट को उठाएंगे तो आप फ़ाइल तक पहुंच नहीं पाएंगे।

कोई विचार यह कैसे पूरा हो सकता है इसे पूरा करने के लिए?

मैं इसके बजाय OnChanged ईवेंट का उपयोग करूंगा, जिसे फ़ाइल में हर बार निकाल दिया जाता है। असल में, जब भी फ़ाइल बदलती है, तो आप फ़ाइल मेटाडेटा पढ़ते हैं। फ़ाइल थोड़ी बार अपडेट होने पर यह थोड़ा बोझिल हो सकता है लेकिन फ़ाइल को हटाए जाने से पहले आपको नवीनतम मेटाडेटा प्राप्त करने की अनुमति देनी चाहिए।

+0

OnChanged को OnDelete से पहले जरूरी नहीं जरूरी है! – nawfal

+0

भी इस बात की कोई गारंटी नहीं है कि इसे हटाए जाने से पहले फ़ाइल बदल दी जाएगी। – Aviatrix

+0

@nawfal कृपया मेरे अपडेट – GETah

0
FileSystemWatcher1 = Your Main Watcher. 
FileSystemWatcher2 = RecycleBin Watcher 

If the FileSystemWatcher1 Deleted file == the FileSystemWatcher2 Created File 
{ 
    //Do what you want with the FileSystemWatcher2.FullPath 
} 
संबंधित मुद्दे