2015-08-27 7 views
6

फ़ोल्डर नहीं बनाता है मैंने पथ C:\Users\MYUSER\Desktop\TEST\ पथ पर एक फ़ोल्डर बनाया है। जब मैं कोड, अधिकांश समय यह ठीक चलाता है पर अमलDirectory.CreateDirectory हमेशा

private const string DIR = @"C:\Users\MYUSER\Desktop\TEST\tmp"; 

static void Main(string[] args) 
{ 
    if (Directory.Exists(DIR)) 
     Directory.Delete(DIR); 

    for (int i = 0; i < 100; i++) 
    { 
     var dinfo = Directory.CreateDirectory(DIR); 
     Directory.Delete(DIR); 
    } 

    Directory.CreateDirectory(DIR); 
} 

, और मैं देख सकता हूँ फ़ोल्डर TEST अंदर एक फ़ोल्डर tmp है कि वहाँ:

मैं निम्नलिखित कोड है।

मेरी समस्या यह है कि कुछ अन्य समय, Directory.CreateDirectory(DIR) कोई निर्देशिका नहीं बनाता है। मैंने DirectoryInfo की जांच भी की है और इसकी Exists संपत्ति false और Directory.CreateDirectory(DIR) काम नहीं करेगी क्योंकि फ़ोल्डर मौजूद नहीं है। क्या इस अजीब व्यवहार के लिए कोई स्पष्टीकरण है?

+0

एनटीएफएस पर आपको ऐसा करने की अनुमति होनी चाहिए। –

+4

क्या इस तरह के कोड या सिर्फ परीक्षण के लिए कोई वास्तविक कारण है? –

+0

क्या आप वाकई अपवाद नहीं प्राप्त कर रहे हैं? क्या निर्देशिका खाली है? –

उत्तर

0

एक ही समस्या थी। कोई त्रुटि नहीं हुई, लेकिन फ़ोल्डर बस नहीं बनाए जाएंगे। बस इस मुद्दे की जड़ और आसान फिक्स की खोज की।

Directory.CreateDirectory("/Users/MyAccount/NewFolder"); 
#Some code... 
Directory.CreateDirectory("/Users/MyAccount/NewFolder/SubFolder"); 

इस निर्देशिका है कि यह पहले बनाए गए थे के तहत फ़ोल्डर बनाने के लिए विफल हो जाएगा:

मैं की तरह कुछ था।

समाधान: पथ के अंत में एक स्लैश जोड़ें।

Directory.CreateDirectory("/Users/MyAccount/NewFolder/SubFolder"); 

Do:

बजाय

Directory.CreateDirectory("/Users/MyAccount/NewFolder/SubFolder/"); 

अनुगामी जोड़ा जा रहा है समस्या का समाधान हो स्लैश, और अब यह बनाता है समय की फ़ोल्डर 100%। कोई और समस्या नहीं है।

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