我的项目找不到肯定存在的文件。我正在使用Stanford NLP库,并且我开始调试时找到了找不到文件的异常。
这是我的测试代码:
String jarRoot = @"stanford-corenlp-full-2016-10-31\stanford-corenlp-full-2016-10-31\stanford-corenlp-3.7.0-models\edu\stanford\nlp\models\pos-tagger\english-left3words\";
foreach (String fName in Directory.GetFiles(jarRoot))
{
Console.WriteLine("File in jarRoot: " + fName);
Console.WriteLine("File exists? " + File.Exists(fName));
}
输出:
File in jarRoot: stanford-corenlp-full-2016-10-31\stanford-corenlp-full-2016-10-31\stanford-corenlp-3.7.0-models\edu\stanford\nlp\models\pos-tagger\english-left3words\english-left3words-distsim.tagger
File exists? False
File in jarRoot: stanford-corenlp-full-2016-10-31\stanford-corenlp-full-2016-10-31\stanford-corenlp-3.7.0-models\edu\stanford\nlp\models\pos-tagger\english-left3words\english-left3words-distsim.tagger.props
File exists? False
File.Exists()怎么可能返回false?
答案 0 :(得分:2)
这是在问题的评论中找到的。使用FileStream打开文件会引发“System.IO.PathTooLongException”异常。如果文件路径太长,File.Exists()只会返回false。
@Abbas提供了解决此问题的链接,可能会有所帮助: Why does System.IO.File.Exists(string path) return false?
谢谢大家!