找不到文件

时间:2017-06-16 07:51:50

标签: c# .net c#-4.0 stanford-nlp

我的项目找不到肯定存在的文件。我正在使用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?

目录截图: enter image description here

1 个答案:

答案 0 :(得分:2)

这是在问题的评论中找到的。使用FileStream打开文件会引发“System.IO.PathTooLongException”异常。如果文件路径太长,File.Exists()只会返回false。

@Abbas提供了解决此问题的链接,可能会有所帮助: Why does System.IO.File.Exists(string path) return false?

谢谢大家!