代码之家  ›  专栏  ›  技术社区  ›  Khorkrak

需要一种方法来确定文件是否已写入

  •  5
  • Khorkrak  · 技术社区  · 14 年前

    我所处的情况是这样的——有一个过程正在写入一个文件,有时文件相当大,比如400-500MB。我需要知道什么时候写完。我如何确定?如果我在目录中查找,我会在那里看到它,但可能无法在编写过程中完成。另外,这需要远程完成——就像在同一个内部局域网上一样,但不是在同一台计算机上,而且通常需要知道文件写入何时完成的过程是在Linux设备上运行的,该设备的进程是在Windows设备上写入文件和文件本身。不,桑巴舞不是一种选择。与该Windows框上的服务进行xmlrpc通信是一个选项,也可以使用snmp检查是否可行。

    理想的

    • 在Linux或Windows上工作-这意味着解决方案是独立于操作系统的。
    • 适用于任何类型的文件。

    足够好:

    • 只在Windows上工作,但可以通过一些库或通过Python访问的任何内容来完成。
    • 仅适用于PDF文件。

    当前的最佳方法是定期打开Windows框中某个进程中的相关文件,查看最后一个字节,检查PDF结束标记,并考虑EOL差异,因为该文件可能是在Linux或Windows上创建的。

    2 回复  |  直到 14 年前
        1
  •  6
  •   Jeroen Ritmeijer    14 年前

    你可以采取很多方法。我会尝试用写权限打开文件。如果成功,那么没有其他人正在写入该文件。

    如果您不能直接访问机器之间的文件,那么就围绕这个概念构建一个Web服务。

        2
  •  0
  •   Khorkrak    14 年前

    我最终解决了我们的问题。事实证明,写这些文件的过程是以独占方式打开的,所以我们所要做的就是尝试打开这些文件进行读访问,但却被拒绝使用。