如果文件夹不存在,请创build它

我在我的应用程序中使用FileUploader控件。 我想将文件保存在指定的文件夹中。 现在我想,如果这个文件夹不存在,首先创build它,然后将我的文件保存到这个文件夹。 如果该文件夹已经存在,那么就把文件保存在里面。

我怎么能做到这一点?

正如其他人所说,使用System.IO.Directory.CreateDirectory

但是,你不需要检查它是否存在。 从文档

path中指定的任何和所有目录都将被创build,除非它们已经存在,或者path的某些部分无效。 path参数指定目录path,而不是文件path。 如果目录已经存在,这个方法什么都不做。

按照http://forums.asp.net/p/1226236/2209871.aspx使用下面的代码:;

 string subPath ="ImagesPath"; // your code goes here bool exists = System.IO.Directory.Exists(Server.MapPath(subPath)); if(!exists) System.IO.Directory.CreateDirectory(Server.MapPath(subPath)); 

只要写下这一行:

 System.IO.Directory.CreateDirectory(myDir); 
  • 如果文件夹不存在 ,它将被创build
  • 如果该文件夹已经存在 ,该行将被忽略

参考: 有关MSDN上的Directory.CreateDirectory的文章

如果path不存在,可以使用如下方法创buildpath:

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

Directory.Exists这将解释如何检查一个FilePath存在

Directory.CreateDirectory这将解释如何尝试和创buildFilePath,如果它不存在

 using System.IO if (!Directory.Exists(yourDirectory)) Directory.CreateDirectory(yourDirectory); 

您可以使用try / catch子句并检查它是否存在:

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

如果不存在,此方法将创build文件夹,如果存在则不做任何事情

 Directory.CreateDirectory(path); 
 if (!Directory.Exists(Path.GetDirectoryName(fileName))) { Directory.CreateDirectory(Path.GetDirectoryName(fileName)); } 

使用下面的代码。 我用这个代码进行文件复制并创build新的文件夹。

 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"); } } 

下面的代码是我使用的代码的最好的行,如果不存在,将创build目录。

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

如果该目录已存在,则此方法不会创build新的目录,但会为现有目录返回一个DirectoryInfo对象。 >

您可以使用Directory.Exist来检查目录是否存在。

 string root = @"C:\Temp"; string subdir = @"C:\Temp\Mahesh"; // If directory does not exist, create it. if (!Directory.Exists(root)) { Directory.CreateDirectory(root); } 

CreateDirectory也用于创build一个子目录。 您所要做的就是指定将在其中创build此子目录的目录的path。以下代码片段在C:\Temp directory创build一个Mahesh子目录。

 // Create sub directory if (!Directory.Exists(subdir)) { Directory.CreateDirectory(subdir); } 

从多个答案派生/组合,为我实现这一点非常简单:

 public void Init() { String platypusDir = @"C:\platypus"; CreateDirectoryIfDoesNotExist(platypusDir); } private void CreateDirectoryIfDoesNotExist(string dirName) { System.IO.Directory.CreateDirectory(dirName); } 

stringcreatefolder =“E:/ tmp /”+ uId;
System.IO.Directory.CreateDirectory(createfolder);