2010-01-02 5 views
8

मुझे "पथ तक पहुंच 'त्रुटि प्राप्त हो रही है LocalAplicationData \ MyProgram \' अस्वीकार कर दिया गया है।" मेरी लॉग फ़ाइल के लिए निर्देशिका बनाने का प्रयास करते समय। यह तब होता है जब मैं एक गैर-व्यवस्थापक उपयोगकर्ता के रूप में प्रोग्राम चला रहा हूं।सी # विंडोज 7 पर एक विशेष व्यवस्थापक के रूप में विशेष Folder.LocalApplicationData में निर्देशिका बनाने में त्रुटि

Directory.CreateDirectory(System.Environment.SpecialFolder.LocalApplicationData + "\\MyProgram\\"); 

यह क्यों होगा?

धन्यवाद

उत्तर

22

LocalApplicationData सिर्फ एक enum मूल्य है। आप GetFolderPath के साथ संयोजन में इसका इस्तेमाल करना होगा:

string folder = Path.Combine(Environment.GetFolderPath(
    Environment.SpecialFolder.LocalApplicationData), 
    "MyProgram"); 
+1

बहुत धन्यवाद divo –

11

आप गणन मूल्य LocalApplicationData उपयोग करने के लिए जैसे कि यह एक स्ट्रिंग थे कोशिश कर रहे हैं। यह। Path.Combine का उपयोग करने के बजाय हाथ से यह कर की तुलना में, पथ का निर्माण करने के

string path = Environment.GetFolderPath(
    System.Environment.SpecialFolder.LocalApplicationData); 

संयोग से, यह बेहतर रूप है, और त्रुटि-रहित होता है,:

string path = Path.Combine(@"C:\", "dir"); // gives you "C:\dir" 
आप GetFolderPath साथ फ़ोल्डर पथ खोजने की जरूरत है

... और इसलिए आपका कोड इस तरह दिख रहा है:

string appDataPath = Environment.GetFolderPath 
    (System.Environment.SpecialFolder.LocalApplicationData); 
string path = Path.Combine(appDataPath, "MyProgram"); 
Directory.CreateDirectory(path);