【问题标题】:Files not being found [closed]找不到文件[关闭]
【发布时间】:2017-06-16 07:51:49
【问题描述】:

我的项目没有找到确实存在的文件。我正在使用斯坦福 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?

目录截图:

【问题讨论】:

  • jar 根目录不是正确的物理路径,请确保路径正确。
  • @TAHASULTANTEMURI 这是一条完全有效的路径,不确定您的意思。
  • 先试试open run命令,运行这个路径,如果有效就不会报错了。
  • @PatrickHofman 文件路径由Directory.GetFiles() 发出,因此看起来它们确实存在。我敢打赌这是权限问题。
  • 路径好像很长,是不是超过了允许的255个字符?

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


【解决方案1】:

这已在问题的 cmets 中进行了整理。使用 FileStream 打开文件会引发“System.IO.PathTooLongException”异常。如果 File.Exists() 遇到文件路径太长等任何错误,它只会返回 false。

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

谢谢大家!

【讨论】:

    猜你喜欢
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    相关资源
    最近更新 更多