c#路径中的非法字符

c# IIllegal Characters in Path

我看不出下面的代码有什么问题。它在第 4 行抛出错误

private void ProcessCsvsReplaceNullsWithSpaces()
{
    string server = ConfigurationSettings.AppSettings["RapServer"];
    string importDir = ConfigurationSettings.AppSettings["importDir"];
    string fileName = server + @"\" + importDir + "\EMIR_VU_E_*.csv";
    string replacenull = File.ReadAllText(fileName);
    replacenull = replacenull.Replace("null", "");
    File.WriteAllText(fileName, replacenull);
}

抛出异常:'System.ArgumentException' 在 mscorlib.dll

附加信息:路径中存在非法字符。

您可以随时检查您的路径,是否包含无效的路径字符。 尝试使用方法 Path.GetInvalidPathChars.

进行迭代

See the documentation of msdn

这会列出所有无效字符。现在你可以迭代你的路径来检查是否有匹配该列表的字符

bool containsInvalidChars = (!string.IsNullOrEmpty(filepath) 
        && filepath.IndexOfAny(System.IO.Path.GetInvalidPathChars()) >= 0);

如果这是真的,你的路径中有一个无效字符

正如其他一些人提到的:您的文件名不能包含 * 字符

您还需要检查您的文件名是否包含无效字符:

这是方法:System.IO.Path.GetInvalidFileNameChars()

在这里您可以找到 *