2013-09-03 30 views
5

बनाएं मैं कोड ofthis तीसरी पंक्ति में एक अपवाद है "दूसरा रास्ता टुकड़ा एक ड्राइव या यूएनसी नाम नहीं होना चाहिए"दूसरा रास्ता टुकड़ा एक ड्राइव या यूएनसी नाम नहीं होना चाहिए - Subdirectory त्रुटि

DirectoryInfo labdi = new DirectoryInfo(Back.mainfolderpath + @"\news\l"); 
DirectoryInfo tld = new DirectoryInfo(labdi.FullName + @"\" + NorA.sn.labl[i]); 
tld = labdi.CreateSubdirectory(labdi.FullName + @"\" + NorA.sn.labl[i] + @"\"); 

नहीं है वेब पर कोई उपयोगी तरीका नहीं है। धन्यवाद।:!

+1

"NorA.sn.labl [i]" क्या है? – doctorlove

+1

आप Sytem.IO.Path.Combine() का उपयोग क्यों नहीं करते? – Heslacher

+0

@doctorlove: एक स्ट्रिंग –

उत्तर

12

मैं आज इस में भाग गया और अंत में इसे ट्रैक किया।

अपवाद आपको यह बताने की कोशिश कर रहा है कि जब कोई DirectoryInfo एक तर्क के रूप में पथ लेता है (उदा।, CreateSubdirectory या GetFiles), तो पथ तर्क में रूट शामिल है और यह अपमानजनक अपवाद फेंक देगा।

तो पथ तर्क जो "सी: \" या "डी: \" आदि काम नहीं करते हैं। इस संदर्भ के साथ सशस्त्र, अपवाद संदेश वास्तव में थोड़ा सा अर्थ बनाता है।

अपने कोड में, आप पूर्ण नाम संपत्ति का उपयोग कर रहे थे और इस स्ट्रिंग में "सी: \" या जो भी रूट है।

प्रश्न की उम्र को देखते हुए, मुझे सी #, .NET 4.5, VS2013 जोड़ना चाहिए।

4

इस समस्या का सबसे आसान समाधान निर्देशिका और फ़ाइल विधियों के स्थिर संस्करण का उपयोग करना है। आपको रूट को इस तरह से हटाने की ज़रूरत नहीं है। आपको DirectoryInfo या FileInfo ऑब्जेक्ट्स की भी आवश्यकता नहीं है, वे आपको सिरदर्द दे रहे हैं

string someFile = @"C:\somefolder\somefile.txt"; 
string directory = Path.GetDirectoryName(someFile); 

foreach(var file in Directory.GetFiles(directory)) 
{ 
    File.Delete(file); 
} 
संबंधित मुद्दे