如何在验证路径和文件后创建文件夹?

时间:2015-03-09 07:03:20

标签: c# regex

当我正在创建一个文件夹时,该路径包含一些非法字符。所以我使用正则表达式将其删除

folder = Regex.Replace(folder, @"[^\w\.@-]", "", 
                                RegexOptions.None, TimeSpan.FromSeconds(1.5));
  if (!Directory.Exists(folder)
   {
            Directory.CreateDirectory(folder);                    
    }

现在我的文件夹路径没有非法字符。但是我删除非法字符后无法创建带有路径的文件夹。 我可以知道该怎么做

1 个答案:

答案 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);                    
    }

**但我不确定,路径和文件名的有效变量名是什么