C# remove unallowed folder name characters
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How check if given string is legal (allowed) file name under Windows?
我搜索过,花了几分钟谷歌搜索,但我不能应用我找到的,我的背景..
1 2 3 4 5 6 | string appPath = Path.GetDirectoryName(Application.ExecutablePath); string fname = projectNameBox.Text; if (projectNameBox.TextLength != 0) { File.Create(appPath +"\\projects\" + fname +".wtsprn"); |
所以,我正在检索projectNameBox.Text并创建一个文件为文件名的文件,但是如果我包含:,或者或者/ etc ......它只会崩溃,这是正常的,因为那些是不允许的 文件夹名称。如何在文件创建之前检查文本,删除字符,甚至更好,什么也不做,并建议用户不能使用这些字符?
提前致谢
您可以从
要创建事件处理程序,请单击设计器中的
1 2 3 4 5 6 7 |
(您还需要在文件顶部使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | string appPath = Path.GetDirectoryName(Application.ExecutablePath); string fname = projectNameBox.Text; bool _isValid = true; foreach (char c in Path.GetInvalidFileNameChars()) { if (projectNameBox.Text.Contains(c)) { _isValid = false; break; } } if (!string.IsNullOrEmpty(projectNameBox.Text) && _isValid) { File.Create(appPath +"\\projects\" + fname +".wtsprn"); } else { MessageBox.Show("Invalid file name.","Error"); } |
另外,在第一条评论中提供的链接中有一个正则表达式示例。