【发布时间】:2013-10-17 22:38:52
【问题描述】:
在我的 Java 7 应用程序中,我需要将 sourceFolder 中的所有文件和目录移动到另一个 destinationFolder。我不知道这两个文件夹是否在同一个文件系统或分区上,因为两者都可以由用户在运行时指定。
由于要移动的文件和目录可能非常大(一些 GB),我一直在寻找一种有效的移动它们的方法。因此,仅当 sourceFolder 和 destinationFolder 不在同一个文件系统上时才应复制它们。因此,如果可能的话,理想情况下,同一文件系统上的移动操作应该是重命名操作。
该应用程序可用于 Windows 和 Linux 系统。
我知道一些related Java 7 functionalities,但是,如果文件夹不为空,它们不允许将文件夹的所有内容移动到其他地方,这在我的情况下是必需的。我还发现了Apache Common's FileUtils 类,看起来很有希望。但是,它的文档说如果sourceFolder 和destinationFolder 不在同一个文件系统上,则应该执行“复制和删除”操作。
所以我的问题是:当我使用 FileUtils 类时,我该如何跨平台检查 sourceFolder 和 destinationFolder 的文件系统?
【问题讨论】:
标签: java file-io apache-commons