private void button5_Click(object sender, EventArgs e)
{
using (FolderBrowserDialog fbd = new FolderBrowserDialog())
{
fbd.Description = "选择一个文件夹,用来指定存放某种节目内容或其它媒体文件。";
fbd.RootFolder = Environment.SpecialFolder.MyComputer;
if (fbd.ShowDialog() == DialogResult.OK)
{
textBox1.Text = string.Empty;
textBox1.Text = fbd.SelectedPath;
textBox1.Refresh();
}
}
string mastr1 = @"^(?<Drive>([a-zA-Z]:\\)|(\\{2}\w+)\$?)((([^/\\\?\*])(\\?))*)$";
string mastr2 = @"^(([a-zA-Z]:\\)|(\\{2}\w+)\$?)((([^/\\\?\*])(\\?))*)$"; string path = textBox1.Text;
Regex re = new Regex(mastr1, RegexOptions.IgnoreCase);
Match m = re.Match(path); MessageBox.Show( m.Success.ToString ()); //if (System.IO.Directory.Exists(this.textBox1 .Text))
//{ MessageBox.Show("不存在该目录夹,请选择正确路径", "提示"); return; }
}
虽然可以pass,希望大家有更好的建议 //F:\벗 우 友이길 승胜.txt\~ @#$() ,' gfafsd 23423
//E:\css.appfuse.org.theme.cssframework\换肤技术\images\sfs_sds -sf sf &% 78\3242以上两个可以通过,但我没理解这个写法的真正的含义,为什么要这样写,mastr1 和mastr2有区别么
//F:\벗 우 友이길 승胜.txt\~ @#$() ,' gfafsd 23423
//E:\css.appfuse.org.theme.cssframework\换肤技术\images\sfs_sds -sf sf &% 78\3242
string mastr1 = @"^(?<Drive>([a-zA-Z]:\\)|(\\{2}\w+)\$?)((([^/\\\?\*])(\\?))*)$";
string mastr2 = @"^(([a-zA-Z]:\\)|(\\{2}\w+)\$?)((([^/\\\?\*])(\\?))*)$"; string path = cgmtxtDIR.Text;
System.Text.RegularExpressions.Regex re = new System.Text.RegularExpressions.Regex(mastr1, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Match m = re.Match(path);
if (m.Success && System.IO.Directory.Exists(cgmtxtDIR.Text))
{
//MessageBox.Show(flag.ToString());
switch (flag)
{
case 0:
NewSave();
break;
case 1:
EditUpdata();
break;
default:
break;
}
}
else
{ MessageBox.Show("不存在该目录夹,请选择正确路径", "提示"); return; }
事实上我已经这样写了,
如果只有System.IO.Directory.Exists(cgmtxtDIR.Text)cgmtxtDIR.Text=@"F:\\第三方软件\1000"好像没效果,所以要加正则先验字符串再验路径存在性
{ MessageBox.Show("不存在该目录夹,请选择正确路径", "提示"); return; }