मैं ऐसे ऐप पर काम कर रहा हूं जो Path.GetDirectoryName(FilePath)
में फ़ाइल सहेजता है जहां FilePath = Application.ExecutablePath
है जिसमें लाइसेंसिंग के बारे में कुछ जानकारी है। यदि मैं वीएस से प्रोग्राम चलाता हूं तो यह ठीक काम करता है लेकिन अगर मैं इंस्टॉलर बना देता हूं और इंस्टॉल करता हूं और फिर इसे चलाता हूं, तो प्रोग्राम सोचता है कि फ़ाइल पहले से मौजूद है। मैंने अपने प्रोग्राम को FilePath
पर एक संदेश बॉक्स पर दिखाने के लिए बदल दिया और File.Exists(FilePath)
true
या false
देता है। तो मैंने उस पथ में देखा, छिपी हुई और सिस्टम फ़ाइलों को दिखाया, F5'd कई बार और कुछ भी नहीं। फ़ाइल मौजूद नहीं है, लेकिन File.Exists(FilePath)
सच है। कोई विचार यह क्यों ठंडा हो रहा है और मैं इसके आसपास कैसे काम कर सकता हूं?फ़ाइल.इक्सिस्ट मौजूद फ़ाइल के लिए सत्य लौट रहे हैं
मैं विंडोज विस्टा, विजुअल स्टूडियो 2010, सी # का उपयोग कर रहा हूं और वीएस की सेटअप परियोजना के साथ अपना इंस्टॉलर बनाया है।
संपादित करें: मेरे मार्ग है: C: \ Program Files (x86) \ हीलियम \ License.xml।
यह मेरा कोड का हिस्सा है:
MessageBox.Show("LicenseFileName: " + LicenseFileName); // LicenseFileName: C:\Program Files (x86)\Helium\License.xml
System.Diagnostics.Process.Start(LicenseFileName); // Nothing happens
MessageBox.Show("File.Exists(LicenseFileName): " + File.Exists(LicenseFileName)); // File.Exists(LicenseFileName): true
कहना है कि मैं पहले से ही आवेदन से पहले स्थापित इसलिए इस्तेमाल किया फ़ाइल मौजूद पड़ा भूल। मैं नियंत्रण कक्ष का उपयोग कर अनइंस्टॉल किया।
में कहीं भी स्थित हो सकती हैं क्या यह एक पूर्ण पथ या सापेक्ष पथ है? हमें दिखा रहा है कि वास्तविक पथ भी मदद कर सकता है। – bblack
रन के माध्यम से फ़ाइल खोलने का प्रयास करें। यह सुपर छुपाया जा सकता है। इसके अलावा, मैं कुछ भी के लिए - विंडोज विस्टा का उपयोग नहीं करने की सलाह दूंगा। –
क्या आप सचमुच 'फाइलपाथ = एप्लिकेशन' एक्सटेरटेबलपैथ कह रहे हैं; फाइल.एक्सिस्ट्स (फाइलपाथ); '? यहां एक और पूर्ण कोड नमूना उपयोगी होगा। – Sorpigal