2010-02-04 14 views
5

मैं File.WriteAllText का उपयोग कर एक फ़ाइल बना रहा हूं और File.Copy विधि का उपयोग कर उसी फ़ाइल को दूसरी निर्देशिका में कॉपी कर रहा हूं। लेकिन किसी कारण से यह स्रोत निर्देशिका में कोई फ़ाइल नहीं बनाता है लेकिन यह इसे गंतव्य निर्देशिका में कॉपी करता है।File.WriteAllText और File.Copy issue

समस्या क्या हो सकती है? कृपया मुझे बताओ।

File.WriteAllText(sourceFilePath, Contents.ToString()); 
File.Copy(sourceFilePath, destFilePath); 
+0

क्या यह व्यवहार अन्य पथों के अनुरूप है? –

उत्तर

0

क्या आपके उदाहरण के अनुसार विधि कॉल समवर्ती है?

यदि ऐसा है, तो आप समस्या को रोकने के लिए फ़ाइल.WriteAllText को दो बार कॉल कर सकते हैं, हालांकि मुझे नहीं पता कि यह क्यों हो रहा है।

आप एक फाइल कर सकते हैं। प्रतिलिपि पहले से जांचें, या शायद थ्रेड की कोशिश करें। नींद (100) और देखें कि यह डिस्क I/O प्रकार की समस्या है।

7

ठीक है, आप वास्तव में यह जानते हैं कि फ़ाइल वास्तव में बनाई गई है, अन्यथा File.Copy() एक अपवाद फेंकता है। और File.Copy() कभी भी फ़ाइल फ़ाइल को हटा नहीं देता है, जैसे File.Move() करता है।

सबसे सरल स्पष्टीकरण यह है कि फ़ाइल सिर्फ उस फ़ोल्डर में बनाई जा रही है जिसकी आपने अपेक्षा नहीं की थी। sourceFilePath एक पूर्ण पथ नहीं है जो सामान्य है। यह आमतौर पर तब होता है जब आपने OpenFileDialog को अपने RestoreDirectory प्रॉपर्टी के साथ गलत पर सेट किया है। उदाहरण के लिए।

हमेशा पूर्ण पथ का उपयोग करके इसे से बचें। पर्यावरण। गेटफोल्डरपाथ() आपका मित्र है।

+0

इस बार उसने एक फाइल बनाई लेकिन यह टेक्स्ट फ़ाइल में पुरानी सामग्री लिख रहा है। File.Copy destinaton निर्देशिका के साथ ठीक काम करता है। – nav100

+0

यह पुरानी सामग्री लिख रहा है? या आप फ़ाइल के पुराने संस्करण को देख रहे हैं? अधिक सबूत यह है कि यह एक अलग निर्देशिका में फ़ाइल बना रहा है। –

0

आप किस फ़ोल्डर को लिख रहे हैं? क्या यह Vista/7 फ़ोल्डर वर्चुअलाइज़ेशन समस्या हो सकता है?

यदि आप हमें वास्तविक कोड दिखा रहे हैं, तो यह सहायक होगा।

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