我正在C#
创建一个应用程序,它在启动时会显示一个对话框,并会询问项目名称。同时,我添加了2个按钮:Create
和Exit
。
如果您按下“创建”,则您在TextBox
中键入的项目名称将以“文档”文件夹中的名称保存。项目文件夹内将包含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));
}
答案 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部分使用它。