当前位置: 首页 > 知识库问答 >
问题:

为什么我在文件确实存在时获取FileNotFoundException

彭兴朝
2023-03-14

我有一个FileSystemWatcher,它跟踪是否创建了新文件。如果是的话,我有一个方法可以读取文件并做一些事情
在下面的代码中,我得到了一个FileNotFoundException,但路径/文件确实存在!我已经检查了路径、文件名等。不知道为什么找不到文件<同样在调试模式下,我验证了path变量的路径是否正确,但当我强制它继续时,它会以某种方式运行,但不幸的是,在发布模式下它会停止。。

using (StreamReader reader = new StreamReader(new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite), Encoding.Default))
{ 
    //my code
}

我得到的错误是

类型'System. IO. FileNotFoundException'的未处理异常发生在mscorlib.dll附加信息:找不到文件'myPathThis

有人能帮忙吗?

共有1个答案

马宜民
2023-03-14

是的,FileSystemWatcher会告诉你文件是什么时候创建的。但这并不意味着文件在那一点上就写完了——当然不是。当你单步执行代码时,你给了另一个进程写和关闭文件所需的时间——最后,这是一个并发问题,在调试时并发问题往往很难再现。同样,当你开始手动检查时,文件已经完成了很长时间——问题在于时间安排。遗憾的是,当文件关闭时(并因此准备好供应用程序使用),无法使用FileSystemWatcher给您一个提示。

您需要等待文件实际完成-一个简单的循环尝试打开文件并在失败时等待一点,应该可以很好地工作:)

 类似资料:
  • 输入是一个名为Wiki micro的文本文件。txt。。。字数计算程序运行正常。。我需要的是修改它 }

  • 问题内容: 我正面临着这个奇怪的问题。 我正在尝试读取位于另一台计算机上的文件作为共享资源: 当我运行一个独立的应用程序(一个16行的Java文件)时,一切都很好。但是,当我尝试使用服务器“引擎”(这是一个应用程序引擎,非常类似于可以运行Java程序的Java EE Application Server)使用相同的类和相同的方法读取相同的文件时,“ FileNotFoundException”被抛

  • 为什么我的程序在读取文件时忽略零?例如,以下是文件中的数字: 这是我的输出: 这是我的代码:

  • 问题内容: 每当我的Jenkins作业的构建完成时,我都会使用插件(也称为插件)发送包含结果的电子邮件。另外,如果系统中存在某个文件,则我正在修改消息的默认内容,以通知该文件的存在。 为此,我正在使用插件的字段。 __ 为运行准备环境 _ 属性内容 _ __ 建立阶段 _ 执行外壳 _ __ 构建后动作 _ 可编辑的电子邮件通知 _ 预发送脚本 执行构建时,将在中创建文件并填充它(我能够从Jenk

  • 控制台中出现以下错误: 我的文件夹文件: 那么,虽然存在,但为什么我会出现错误呢?

  • 问题内容: 我正在创建一个小程序,该程序将读取一个文本文件,其中包含大量随机生成的数字,并产生诸如均值,中位数和众数之类的统计信息。我已经创建了文本文件,并确保在声明为新文件时名称完全相同。 是的,该文件与类文件位于同一文件夹中。 } 错误行的内容如下: 问题答案: 如何添加: 打印出来。它会告诉您当前的工作目录是什么。然后,您应该能够看到为什么找不到文件。 除了找不到代码之外,您还可以检查以允许