当我正在创建一个文件夹时,该路径包含一些非法字符。所以我使用正则表达式将其删除
folder = Regex.Replace(folder, @"[^\w\.@-]", "",
RegexOptions.None, TimeSpan.FromSeconds(1.5));
if (!Directory.Exists(folder)
{
Directory.CreateDirectory(folder);
}
现在我的文件夹路径没有非法字符。但是我删除非法字符后无法创建带有路径的文件夹。 我可以知道该怎么做
答案 0 :(得分:1)
您只需使用以下代码检查路径是否正确:
var invalidPathChars = Path.GetInvalidPathChars(path)
使用以下代码检查文件是否正确:
var invalidFileNameChars = Path.GetInvalidFileNameChars(fileName)
如果您想要一个验证文件夹路径的正则表达式,请尝试以下代码
folder = Regex.Replace(folder, @"^([a-zA-Z]:)?(\\\\[^<>:\"/\\\\|?*]+)+\\\\?$",
RegexOptions.None, TimeSpan.FromSeconds(1.5));
验证后创建文件夹
var invalidPathChars = Path.GetInvalidPathChars(path)
var invalidFileNameChars = Path.GetInvalidFileNameChars(fileName)
if(invalidPathChars ==True && invalidFileNameChars == True)
{
// Folder creating code
}
else
{
//Show error message
}
你的条件错了 你需要检查文件夹变量的结果而不是文件夹路径变量
尝试此代码而不是代码
folder = Regex.Replace(folder, @"^([a-zA-Z]:)?(\\\\[^<>:\"/\\\\|?*]+)+\\\\?$",
RegexOptions.None, TimeSpan.FromSeconds(1.5));
if (!Directory.Exists(folder)
{
Directory.CreateDirectory(folder);
}
**但我不确定,路径和文件名的有效变量名是什么