如何检测文件不存在

本文关键字:文件 不存在 检测 何检测 | 更新日期: 2023-09-27 18:19:47

当文件路径无效时,第三方库会出错。我们试图使用File.Exists()处理这种情况,认为当文件路径包含无效字符时,它会返回false,但它会返回true

这很奇怪(请参阅额外的空格和句点)

    string wrong = "myfolder1''myfolder2''myfile.txt      .";
    bool x = File.Exists(wrong);

有没有办法清理文件路径?

new FileInfo(wrong).Name不清理它。

我们的主要目的是在将文件路径发送到第三方库之前,可靠地确定文件路径是否有效。我几乎觉得问这个问题很愚蠢,因为我认为File.Exists()应该这么做。

(我们在.NET 4.0上)

如何检测文件不存在

windows API会从文件名中修剪尾随的句点和空格,如果它不是句点,它会起作用。

有关详细信息,请参阅这篇msdn文章。

不要以空格或句点结束文件或目录名。尽管底层文件系统可能支持这样的名称,但Windows外壳和用户界面不支持。但是,可以将句点指定为名称的第一个字符。例如,".temp".


我不知道它是否有效,但您可以使用''?'前缀绕过外壳,尝试File.Exists(@"''?'C:'myfolder1'myfolder2'myfile.txt .");,看看它是否有效(我现在无法测试,如果它不通知我,我将删除此部分。)