2010-07-02 23 views
7

है या नहीं, यह निर्धारित करने का कोई तरीका है कि फ़ाइल किसी भी चीज़ द्वारा खुलती है या नहीं, जिसमें फ़ाइल लॉक नहीं होती है (जैसे नोटपैड)।यह निर्धारित करें कि कोई फ़ाइल

मुझे यह पता लगाने की आवश्यकता है कि किसी दिए गए फ़ाइल myfile.txt अब नोटपैड सहित किसी भी एप्लिकेशन में नहीं खुलती है - इसलिए मैं फ़ाइल का उपयोग नहीं कर सकता (ओपन) परीक्षण के लिए विशेष पहुंच के साथ फ़ाइल पर इसका कोई ताला नहीं है ।

+0

संभावित डुप्लिकेट [मैं सी # में प्रक्रिया द्वारा खुली फ़ाइल हैंडल की सूची कैसे प्राप्त करूं?] (Http://stackoverflow.com/questions/177146/how-do-i-get-the-list-of- ओपन-फाइल-हैंडल-बाय-प्रोसेस-इन-सी) –

+1

यह डुप्लिकेट नहीं है। नोटपैड में खुली फ़ाइल हैंडल नहीं है। –

उत्तर

7

नहीं जब नोटपैड ने एक फ़ाइल खोली है, तो उसने पूरी फ़ाइल को में पढ़ा है और फिर इसे बंद कर दिया है। तो ओएस में कोई निशान नहीं है जो डिस्क पर फ़ाइल के साथ नोटपैड की निजी मेमोरी को लिंक करता है।

फ़ाइल खोलना विशेष रूप से काम नहीं करेगा, क्योंकि नोटपैड में फ़ाइल खुली नहीं है। नोटपैड की हैंडल तालिका खोजना काम नहीं करेगा, क्योंकि नोटपैड में फ़ाइल खुली नहीं है।

इसका पता लगाने का एकमात्र तरीका एक अप्रबंधित डीएलएल लिखना है जिसे सटीक फ़ाइल सामग्री की खोज करने के लिए अपनी वर्चुअल मेमोरी स्कैन करने के लिए प्रत्येक प्रक्रिया में इंजेक्शन दिया जाता है। सिफारिश नहीं की गई।

0

आपको फ़ाइल को खोलना होगा (ओपन) अपनी वांछित एक्सेस झंडे निर्दिष्ट करना और यह निर्धारित करने के लिए वापसी मूल्य की जांच करें कि फ़ाइल खोला गया है या यदि पहुंच अस्वीकार कर दी गई है। फ़ाइल तक पहुंचने के लिए यह अनुशंसित और सुरक्षित तरीका है।

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