【问题标题】:Java: How to copy automatically a file each time one is generated in a folder?Java:每次在文件夹中生成文件时如何自动复制文件?
【发布时间】:2014-06-21 20:17:39
【问题描述】:

我要一个 Java 代码。

ERP 在一个文件夹中生成 XML 文件,每个文件都有不同的名称。

对于数据提取,我需要:

如果生成了新文件:

  1. 将文件从主文件夹复制到辅助文件夹

  2. 在“temp”下重命名此文件

  3. 使用 ETL (Talend) 从“temp”中提取数据

  4. 删除文件“temp”

我的问题是: 如何使用 Java 自动捕获文件以便在每次生成文件时对其进行复制或重命名?

谢谢

【问题讨论】:

  • 我回答了something similar a while ago - 观察目录中的变化。这有帮助吗?
  • 没错,我需要一个监视文件夹中新文件添加的监视服务。如何获取新添加文件的名称?通过监视键?

标签: java xml copy rename


【解决方案1】:

创建一个每 x 分钟运行一次的作业,并仅检查在过去 x 分钟内修改/创建的文件。

【讨论】:

  • 没有。无需轮询。这浪费了 CPU 周期,而且响应速度远低于 watch 服务方法。
【解决方案2】:

您将不得不运行一个无限循环的监视服务来继续检查文件夹是否已更改

关于如何做到这一点有更好的解释here

在更改触发后,编写一个函数来复制、重命名文件并将其粘贴到新的“临时”文件夹中。 你可以使用 filereader 和 filewriter 来做到这一点。

【讨论】:

  • 那么我需要一个监视服务来监视文件夹中新文件的添加,就这样吗?如何通过 Watch Key 获取文件的名称?
  • @Mikahel 也许读过Javadoc for Path
  • Watchservice 在我的电脑上运行良好。问题,它需要Java 7,而且公司还在Java 6上运行,所以没有java.nio库......另一个可以媲美watchservice的解决方案?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
  • 1970-01-01
  • 2016-09-08
  • 2020-02-22
  • 2016-11-06
  • 2018-02-07
  • 1970-01-01
相关资源
最近更新 更多