如何检测文件不存在
本文关键字:文件 不存在 检测 何检测 | 更新日期: 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 .");
,看看它是否有效(我现在无法测试,如果它不通知我,我将删除此部分。)