我在我的应用程序中使用FileUploader控件。我想保存一个文件到指定的文件夹。如果这个文件夹不存在,我想先创建它,然后将我的文件保存到这个文件夹。如果文件夹已经存在,那么只需将文件保存在其中。

我该怎么做呢?


当前回答

如果路径还不存在,可以使用如下方法创建路径:

using System.IO;

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

其他回答

使用System.IO.Directory.CreateDirectory。


据该官员说。NET"文档,你不需要先检查它是否存在。

系统。io >目录>目录。CreateDirectory path中指定的任何和所有目录都将被创建,除非它们已经存在或path的某些部分无效。如果目录已经存在,此方法不会创建新目录,但会返回现有目录的DirectoryInfo对象。         — learn.microsoft.com/dotnet/api/


就写这一行:

System.IO.Directory.CreateDirectory("my folder");

如果该文件夹还不存在,则将创建该文件夹。 如果文件夹已经存在,那么该行将被忽略。

参考:关于目录的文章。在MSDN创建目录

当然,你也可以使用System.IO;在源文件的顶部,然后只写目录。CreateDirectory(“我的文件夹”);每次你想创建一个文件夹。

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

System.IO.Directory.CreateDirectory(HttpContext.Current.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");
   }
}

如果该文件夹不存在,该方法将创建该文件夹,如果存在则不执行任何操作:

Directory.CreateDirectory(path);