Java 以独立于操作系统的方式将文件从一个文件夹复制到另一个文件夹

Java 以独立于操作系统的方式将文件从一个文件夹复制到另一个文件夹,java,io,Java,Io,我有两个文件夹,比如folder1和folder2 folder1包含不同类型的文件,如.txt、.doc、.png。所有文件仅发布在此文件夹中 现在,我要做的是,一旦文件保存在folder1中,该文件的副本就会进入folder2的子文件夹,子文件夹名称应该是该文件的扩展名。i、 e如果abc.txt文件保存在folder1中,则应在folder2中创建txt文件夹(如果txt文件夹不存在),并且应在该子文件夹中复制abc.txt。如果我们有xyz.doc文件,那么创建doc文件夹并保存在其中。

我有两个文件夹,比如folder1和folder2

folder1包含不同类型的文件,如.txt、.doc、.png。所有文件仅发布在此文件夹中

现在,我要做的是,一旦文件保存在folder1中,该文件的副本就会进入folder2的子文件夹,子文件夹名称应该是该文件的扩展名。i、 e如果abc.txt文件保存在folder1中,则应在folder2中创建txt文件夹(如果txt文件夹不存在),并且应在该子文件夹中复制abc.txt。如果我们有xyz.doc文件,那么创建doc文件夹并保存在其中。我想用Java做这个。
这应该是独立于平台的,也就是说,我们可以在Windows、Linux或Android中进行复制。

您可以通过&

启动一个线程,经常检查该文件夹中的新文件。线程具有文件中所有哈希的列表。如果该文件不在列表中,它将创建一个新文件。然后可以将文件复制到新位置。您可以检查散列,而不是检查文件名。

您可以等待Java 7吗?非常适合通知新的
文件
对象

引用这些JavaDocs的顶部:

监视已注册对象的更改和事件的监视服务。例如,文件管理器可以使用监视服务来监视目录的更改,以便在创建或删除文件时更新文件列表的显示。


(甲骨文强调,大胆,我强调。

好,我们明白了。你在做这件事时面临的问题是什么?那么你到底在哪里遇到了问题?你试了什么?最困难的部分可能是当某些文件保存在
folder1
中时收到通知。我的主要问题是使其独立于平台。i、 我怎样才能使它在android、linux、Windows中工作。。。。。。我不知道如何处理这一部分……以及如何知道新文件已添加到文件夹1(我想我可以在几分钟左右后重新检查文件夹……)。还要注意,检测新文件与检测新文件是否完全由外部进程写入不同。后者更难。*“如果文件不在列表中,则为新文件。”它可能是现有的
文件
实例之一,已重命名。然后他可以从文件生成哈希并将哈希保存在列表中。好主意!请将其编辑到您的答案中,以便我可以删除我的评论和投票。这在Android上不起作用。虽然它松散地基于JavaSE,但它基于Java6,我不知道他们“更新”它的时间表。