c# - यदि कोई फ़ोल्डर मौजूद नहीं है, तो इसे बनाएं




asp.net (10)

स्ट्रिंग createfolder = "ई: / tmp /" + uId;
System.IO.Directory.CreateDirectory (CreateFolder);

मैं अपने आवेदन में एक फ़ाइलउप्लोडर नियंत्रण का उपयोग करता हूं। मैं एक निर्दिष्ट फ़ोल्डर में एक फ़ाइल को सहेजना चाहता हूँ। अब मैं चाहता हूं, अगर यह फ़ोल्डर मौजूद नहीं है, तो इसे पहले बनाने के लिए, और फिर मेरी फ़ाइल को इस फ़ोल्डर में सहेजें। यदि फ़ोल्डर पहले से मौजूद है, तो बस इसमें फ़ाइल को सहेजें।

मैं यह कैसे कर सकता हूं?


आप एक कोशिश / पकड़ खंड का उपयोग कर सकते हैं और यह देखने के लिए जांच सकते हैं कि यह मौजूद है या नहीं:

  try
  {
    if (!Directory.Exists(path))
    {
       // Try to create the directory.
       DirectoryInfo di = Directory.CreateDirectory(path);
    }
  }
  catch (IOException ioex)
  {
     Console.WriteLine(ioex.Message);
  }

निम्नलिखित कोड कोड का सबसे अच्छा लाइन है जिसका उपयोग मैं करता हूं जो मौजूद नहीं होने पर निर्देशिका बना देगा।

System.IO.Directory.CreateDirectory(Server.MapPath("~/temp/"));

यदि निर्देशिका पहले से मौजूद है, तो यह विधि एक नई निर्देशिका नहीं बनाती है, लेकिन यह मौजूदा निर्देशिका के लिए DirectoryInfo ऑब्जेक्ट देता है। >


नीचे कोड का प्रयोग करें। मैंने फ़ाइल कॉपी के लिए इस कोड का इस्तेमाल किया और नया फ़ोल्डर बनाया।

string fileToCopy = "filelocation\\file_name.txt";
String server = Environment.UserName;
string newLocation = "C:\\Users\\" + server + "\\Pictures\\Tenders\\file_name.txt";
string folderLocation = "C:\\Users\\" + server + "\\Pictures\\Tenders\\";
bool exists = System.IO.Directory.Exists(folderLocation);

if (!exists)
{
   System.IO.Directory.CreateDirectory(folderLocation);
   if (System.IO.File.Exists(fileToCopy))
   {
     MessageBox.Show("file copied");
     System.IO.File.Copy(fileToCopy, newLocation, true);

   }
   else
   {
      MessageBox.Show("no such files");

   }
}

यदि आप निम्न प्रकार की विधि के साथ अभी तक मौजूद नहीं हैं तो आप पथ बना सकते हैं:

using System.IO;

private void CreateIfMissing(string path)
{
  bool folderExists = Directory.Exists(Server.MapPath(path));
  if (!folderExists)
    Directory.CreateDirectory(Server.MapPath(path));
}

यदि यह अस्तित्व में नहीं है तो यह विधि फ़ोल्डर बनायेगी और मौजूद होने पर कुछ भी नहीं करेगी

Directory.CreateDirectory(path);

Directory.Exists यह बताएगा कि फ़ाइलपैथ मौजूद है या नहीं

Directory.CreateDirectory यह बताएगा कि फ़ाइलपैथ को कैसे और कैसे बनाना है, यदि यह अस्तित्व में नहीं है


जैसा कि अन्य ने कहा है, System.IO.Directory.CreateDirectory उपयोग करें

लेकिन, आपको यह जांचने की आवश्यकता नहीं है कि यह पहले मौजूद है या नहीं। docs

पथ में निर्दिष्ट किसी भी और सभी निर्देशिकाएं बनाई जाती हैं, जब तक वे पहले से मौजूद न हों या जब तक कि पथ का कुछ हिस्सा अमान्य न हो। पथ पैरामीटर एक निर्देशिका पथ निर्दिष्ट करता है, फ़ाइल पथ नहीं। यदि निर्देशिका पहले से मौजूद है, तो यह विधि कुछ भी नहीं करती है।


string root = @"C:\Temp";

string subdir = @"C:\Temp\Mahesh";

// If directory does not exist, create it.

if (!Directory.Exists(root))
{

Directory.CreateDirectory(root);

}

CreateDirectory का उपयोग उप निर्देशिका बनाने के लिए भी किया जाता है। आपको बस इतना करना है कि निर्देशिका का पथ निर्दिष्ट करना है जिसमें यह उपनिर्देशिका बनाई जाएगी। निम्न कोड स्निपेट C:\Temp directory में एक महेश उपनिर्देशिका बनाता है।

// Create sub directory

if (!Directory.Exists(subdir))
{

Directory.CreateDirectory(subdir);

}

using System.IO

if (!Directory.Exists(yourDirectory))
    Directory.CreateDirectory(yourDirectory);






asp.net