如何创建包含项目中所有文件的文件夹?

时间:2017-07-29 15:17:23

标签: c# .net windows project documents

我正在C#创建一个应用程序,它在启动时会显示一个对话框,并会询问项目名称。同时,我添加了2个按钮:CreateExit

如果您按下“创建”,则您在TextBox中键入的项目名称将以“文档”文件夹中的名称保存。项目文件夹内将包含2个名为imgjs的单独文件夹。如果您下次尝试创建一个名称文件夹存在的项目,它将不会覆盖该文件夹(我只是说我出现了MsgBox)。这是代码:

//Unable to create project
        string mydir = Environment.SpecialFolder.MyDocuments + "\\" + textBox1.Text;
        if (Directory.Exists(mydir) == true)
        {
                MessageBox.Show("The project name: " + textBox1.Text + " has already been created. Please consider renaming a different project name.", "Netplait", MessageBoxButtons.OK, MessageBoxIcon.Error);
                textBox1.Focus();
                return;
        }

        if (Directory.Exists(mydir) == false)
        {
            Directory.CreateDirectory(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), textBox1.Text));
        }

1 个答案:

答案 0 :(得分:3)

Environment.SpecialFolder.MyDocuments 是一个枚举,而不是现有目录的路径。您的代码失败,因为将此枚举值连接到文本框中的字符串是没有意义的。

而是使用

获取实际的MyDocument文件夹
string mydir = Environment.GetFolderPath(Environement.SpecialFolder.MyDocuments);
mydir = Path.Combine(myDir, textBox1.Text);
if(DirectoryExists(myDir))
{
    MessageBox.Show(.....);
    textBox1.Focus();
    return;
}
else
{
    Directory.CreateDirectory(myDir);
}

另请注意,要组合字符串和生成有效路径,最好将此任务留给专用方法Path.Combine
顺便说一句,您可以在代码的Directory.CreateDirectory部分使用它。