首页 文章

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

提问于
浏览
550

我在我的应用程序中使用FileUploader控件 . 我想将文件保存在指定的文件夹中 . 现在我想,如果此文件夹不存在,首先创建它,然后将我的文件保存到此文件夹 . 如果该文件夹已存在,则只需将文件保存在其中 .

我怎么能这样做?

15 回答

  • 28

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

    Directory.CreateDirectory(path);
    
  • 11

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

    但是,您不需要先检查它是否存在 . 来自docs

    创建路径中指定的任何和所有目录,除非它们已存在或除非路径的某些部分无效 . path参数指定目录路径,而不是文件路径 . 如果该目录已存在,则此方法不执行任何操作 .

  • 323

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

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

    以下代码是我使用的最佳代码行,如果不存在则将创建目录 .

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

    如果该目录已存在,则此方法不会创建新目录,但会返回现有目录的DirectoryInfo对象 . >

  • 13

    从多个答案派生/组合,为我实现它就像这样简单:

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

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

  • 974

    这是我正在寻找的答案,但并不容易找到:

    string pathToNewFolder = System.IO.Path.Combine(parentFolderPath, "NewSubFolder");
            DirectoryInfo directory = Directory.CreateDirectory(pathToNewFolder); 
           // Will create if does not already exist (otherwise will ignore)
    

    给出新文件夹的

    • 路径

    • 目录信息变量,以便您可以随意继续操作它 .

  • 1
    using System.IO
    
    if (!Directory.Exists(yourDirectory))
        Directory.CreateDirectory(yourDirectory);
    
  • -2
    if (!Directory.Exists(Path.GetDirectoryName(fileName)))
    {
        Directory.CreateDirectory(Path.GetDirectoryName(fileName));
    }
    
  • 16

    Directory.Exists这将解释如何检查FilePath是否存在

    Directory.CreateDirectory这将解释如何尝试创建FilePath(如果它不存在)

  • 2

    根据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));
    
  • 15

    只需写下这一行:

    System.IO.Directory.CreateDirectory(myDir);
    
    • 如果文件夹为 not exist yet ,则为 created .

    • 如果文件夹 exists already ,该行将为 ignored .

    参考:Article about Directory.CreateDirectory at MSDN

  • 0

    使用下面的代码 . 我使用此代码进行文件复制并创建新文件夹 .

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

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

    using System.IO;
    
    private void CreateIfMissing(string path)
    {
      bool folderExists = Directory.Exists(Server.MapPath(path));
      if (!folderExists)
        Directory.CreateDirectory(Server.MapPath(path));
    }
    
  • -4
    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 中创建Mahesh子目录 .

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

相关问题