在我的 Java 7 应用程序中,我需要将所有文件和目录移动sourceFolder
到另一个destinationFolder
. 我不知道这两个文件夹是否在同一个文件系统或分区上,因为两者都可以由用户在运行时指定。
由于要移动的文件和目录可能非常大(一些 GB),因此我正在寻找一种有效的移动它们的方法。sourceFolder
因此,仅当destinationFolder
它们不在同一文件系统上时才应复制它们。因此,如果可能的话,理想情况下,同一文件系统上的移动操作应该是重命名操作。
该应用程序可用于 Windows 和 Linux 系统。
我知道一些相关的 Java 7 功能,但是,如果文件夹不为空,它们不允许将文件夹的所有内容移动到其他地方,这在我的情况下是一个要求。我还发现了Apache Common 的 FileUtils类,它看起来很有希望。但是,它的文档说,如果不在同一个文件系统上,则应该执行“复制和删除”操作。sourceFolder
destinationFolder
所以我的问题是:当我使用那个FileUtils
类时,我怎样才能以跨平台的方式sourceFolder
检查文件系统?destinationFolder