如何创建包含项目中所有文件的文件夹?
How do you create a folder containing all the files in a project?
我正在 C#
中创建一个应用程序,它会在启动时显示一个对话框并询问项目名称。同时,我添加了 2 个按钮:Create
和 Exit
。
如果您按创建,您在 TextBox
中键入的项目名称将以该名称保存在 Documents 文件夹中。项目文件夹内将包含 2 个单独的文件夹,分别称为 img
和 js
。如果您下次尝试创建一个名称为该文件夹存在的项目,它不会覆盖该文件夹(假设我出现了 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));
}
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 部分就拥有了它。
我正在 C#
中创建一个应用程序,它会在启动时显示一个对话框并询问项目名称。同时,我添加了 2 个按钮:Create
和 Exit
。
如果您按创建,您在 TextBox
中键入的项目名称将以该名称保存在 Documents 文件夹中。项目文件夹内将包含 2 个单独的文件夹,分别称为 img
和 js
。如果您下次尝试创建一个名称为该文件夹存在的项目,它不会覆盖该文件夹(假设我出现了 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));
}
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 部分就拥有了它。