请教创建文件夹问题
string FolderStr="2";
//string FolderStr=@"d:\NewFolder";//这样就是正常在d:\NewFolder创建了文件夹。
if (Directory.Exists(FolderStr))
{//存在打开
System.Diagnostics.Process.Start("Explorer.exe", FolderStr);
}
else
{//不存在创建
try
{
Directory.CreateDirectory(FolderStr);
System.Diagnostics.Process.Start("Explorer.exe", FolderStr);
}
catch (Exception E)
{
MessageBox.Show(E.Message);
}
}
这样创建文件夹竟然不是报错,而是在程序的根目录创建了文件夹
------解决方案--------------------因为这本来就是允许的。。。当然不会catch到错误
MSDN的文档做如下说明
若要在当前目录是 C:\Users\User1 时创建目录 C:\Users\User1\Public\Html,可以使用以下三种方法:
Directory.CreateDirectory("Public\\Html");
Directory.CreateDirectory("\\Users\\User1\\Public\\Html");
Directory.CreateDirectory("c:\\Users\\User1\\Public\\Html");
所以楼主的方法符合第一种
------解决方案--------------------
你想要的结果是当用户直接输入类似2这样的路径的时候,程序不创建文件夹,而是抛出异常,是吗?
如果是这样,你可以用String类里面IndexOf(':')来判断。如果这个函数返回的结果小于0,那么你自己就抛出一个路径错误的异常
------解决方案--------------------创建不再预设的位置,不一定算错误