2011-11-26 12 views
7

मैं कुछ टेक्स्ट फ़ाइलों की प्रतिलिपि बनाना चाहता हूं, जो किसी अन्य ऐप द्वारा लिखे गए हैं, लेकिन मैं अन्य ऐप को रोकने के लिए कुछ भी नहीं करना चाहता हूं। इन फ़ाइलों को लिखने से।क्या फ़ाइल। कॉपी किसी अन्य ऐप को फ़ाइल से लिखने से रोकती है?

मैं , सी #, नेट फ्रेमवर्क 2.0 से File.Copy का उपयोग कर रहा हूं।

मैं MSDN के दस्तावेज़ की जाँच की, लेकिन कुछ भी विशेष रूप से विधि है कि File.Copy का उपयोग करता है के बारे में कहा गया है। क्या यह एक अप्रबंधित एपीआई कॉल के लिए एक रैपर है?

फ़ाइल किसी भी तरह से कॉपी की जा रही ब्लॉक File.Copy ताला करता है, या?

इस बारे में कोई भी जानकारी के लिए अग्रिम धन्यवाद।

+0

@Joey: मुझे लगता है कि मैट स्रोत फ़ाइल, नहीं लक्ष्य फाइल करने के लिए बात कर रहा है। फिर भी, एक फ़ाइल की प्रतिलिपि बनाते समय एक और प्रक्रिया लिख ​​रही है, संभवतः अजीब परिणाम हो सकती है, यह किस प्रकार की फाइल है, और इसे कॉपी करने का उद्देश्य। –

उत्तर

1

आप .Net Reflector (या अन्य विघटित उपकरण) का उपयोग कर सकते विधि की आंतरिक संरचना को देखने के लिए।

दरअसल आप देख सकते हैं कि System.IOFile.Copy फ़ाइलों का मुकाबला करने के लिए Microsoft.Win32.Win32Native लाइब्रेरी का उपयोग करता है। Microsoft.Win32.Win32Native यह सभी Win32 मूल संचालन के लिए सीएलआर रैपर है।

+0

आपके उत्तरों के लिए सभी को धन्यवाद। – netcat

+0

जॉय, हाँ, मैं स्रोत फ़ाइल को प्रतिबिंबित कर रहा हूं, न कि लक्ष्य फ़ाइल जिसे मैं प्रतिलिपि बना रहा हूं। Schglurps, मैंने इसके साथ विस्तार किया है, मैंने एक अन्य ऐप में किसी भी को fileshare सेट के साथ एक filestream खोला। और मैं File.Copy का उपयोग कर फ़ाइल को कॉपी करने में सक्षम था। सेलर, धन्यवाद। मुझे नहीं पता कि मैंने इस बारे में क्यों नहीं सोचा था। मैं परावर्तक में विधि को देखूंगा, और Win32 एपीआई कॉल पर पढ़ूंगा। – netcat

2

अन्य एप्लिकेशन FileShare.None निर्दिष्ट करने के द्वारा अपनी फ़ाइलें बनाता है, तो आप एक UnauthorizedAccessException प्राप्त होगा। तो मुझे कल्पना है कि आपको बस अपने ऐप में इस विशिष्ट अपवाद को संसाधित करना होगा।

+0

मेरा बुरा, मेरे प्रश्न को स्पष्ट करने के लिए फ्रेडरिक धन्यवाद। – netcat

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