【问题标题】:File Exists But Receiving ENOENT Error文件存在但收到 ENOENT 错误
【发布时间】:2012-01-29 20:46:50
【问题描述】:

这里有一个要点:https://gist.github.com/973e70bde8e6a530c489

我有两种情况。即使代码完全相同,一个有效,一个失败。

  1. 获取盒子上已有的 CSV 文件并对其进行解析。完美运行。没有问题。
  2. 获取刚刚创建的 CSV 文件并尝试解析它,我收到:

    ENOENT,没有这样的文件或目录'/Users/Home/dev/csv/TwFrI5vhdownload.csv

相同的 CSV 文件格式等等。无论如何都没关系,因为创建的文件甚至不会打开。即使文件确实存在,它也会因上述错误而失败。如果我重新启动 Node 并尝试获取该文件,那么它可以完美运行。如果我在新创建的文件上运行 fs.stat 它会失败。

我尝试过超时、外部回调等。但对于动态创建的文件,它总是失败。

我在这里缺少什么?文件是否被锁定而我不知道?

谢谢!

系统:

OSX 狮子 节点 v0.6.7

【问题讨论】:

  • 您可以通过与任何其他软件相同的路径访问该文件吗?另外,“动态创建的文件”到底是什么意思?
  • 您是否在同一节点进程中创建第二个文件,即失败的文件?
  • 是的,我可以访问它。当我说动态创建时,我应该说临时文件。它是从服务器下载的,然后我尝试访问它。
  • @Fosco 该文件实际上是由 Casper 使用 PhantomJS 创建的,但它保存在一个目录中。然后,PhantomJS 告诉 Node 文件在那里(它是),但是 Node 不会打开它
  • 我怀疑 Node 进程根本没有权限在该位置打开该文件。

标签: javascript node.js file-io


【解决方案1】:

当您尝试解析文件时,您确定该文件是实际创建的吗?

我看了一下要点,我猜你是从某个地方下载文件然后解析它。如果没有整个代码我只能猜测,但我认为您已经开始下载,但您还没有收到明确的指示,它已经在那里并准备好被解析了。

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 2023-04-01
    相关资源
    最近更新 更多