如果目录不存在,那么创建目录的代码是什么?

时间:2017-10-11 07:04:58

标签: c# create-directory

我在编写保存目录时遇到问题。我希望它在当前用户桌面上创建一个名为“Ausgabe”(输出)的文件夹,但我不知道如何检查它是否已经存在,如果它不存在则创建它。

到目前为止,这是该部分的当前代码:

public partial class Form1 : Form
{
    string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
    // need some code here
}

我要添加什么才能让它按照我的意愿去做?

5 个答案:

答案 0 :(得分:1)

您可以使用

检查目录是否存在
Directory.Exists(pathToDirectory)

使用

创建目录
Directory.CreateDirectory(pathToDirectory)

编辑回复您的评论:

string directoryPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Ausgabe")

应该为您提供名为' Ausgabe'的文件夹的路径。在用户Desktop-folder中。

答案 1 :(得分:1)

只需使用Directory.CreateDirectory即可。如果该目录存在,该方法将不会创建它(换句话说,它包含对Directory.Exists的内部调用)

public partial class Form1 : Form
{
    string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

    public Form1()
    {
         string myFolder = Path.Combine(path, "Ausgabe");
         Directory.CreateDirectory(myFolder);
    }

要使用此方法,您需要使用System.IO 将添加到Form1.cs文件的顶部。

我还想说桌面不是为应用程序创建目录的最合适的位置。系统提供了一个适当的位置,它位于ProgramData枚举下(CommonApplicationData或ApplicationData)

    string path = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);

答案 2 :(得分:1)

  

根据此docDirectory.CreateDirectory Method (String)会   创建指定路径中的所有目录和子目录   除非他们已经存在。

所以可以这样使用:

string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string desktopFolder = Path.Combine(path, "New Folder");
Directory.CreateDirectory(desktopFolder);

答案 3 :(得分:0)

您可以使用Directory.Exists()方法:https://msdn.microsoft.com/en-us/library/system.io.directory.exists(v=vs.110).aspx

你的代码看起来应该是这样的:

public static void Main() 
    {
        // Specify the directory you want to manipulate.
        string path = @"c:\MyDir";

        try 
        {
            // Determine whether the directory exists.
            if (Directory.Exists(path)) 
            {
                Console.WriteLine("That path exists already.");
                return;
            }

            // Try to create the directory.
            DirectoryInfo di = Directory.CreateDirectory(path);
            Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(path));

            // Delete the directory.
            di.Delete();
            Console.WriteLine("The directory was deleted successfully.");
        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        } 
        finally {}
    }

答案 4 :(得分:0)

我最近有一个问题,所以这是我的解决方案,

我必须找到已部署的目录

var deployedDir = Assembly.GetEntryAssembly().CodeBase;          
            deployedDir = Path.GetDirectoryName(deployedDir);
            deployedDir = deployedDir.Replace("file:\\", "");
            var pathToDirectory= Path.Combine(deployedDir, "YourFileName");

然后执行上面的答案显示并创建目录(如果它不存在)

Directory.CreateDirectory(pathToDirectory)