В моем приложении Java 7 мне нужно переместить все файлы и каталоги в sourceFolder
в другой destinationFolder
. Я не знаю, находятся ли эти две папки в одной и той же файловой системе или разделе, поскольку обе могут быть указаны пользователем во время выполнения.
Поскольку файлы и каталоги для перемещения могут быть довольно большими (несколько ГБ), я искал эффективный способ их перемещения. Поэтому их следует копировать только в том случае, если sourceFolder
и destinationFolder
не находятся в одной и той же файловой системе. Поэтому в идеале операция перемещения в той же файловой системе должна быть операцией переименования, если это возможно.
Приложение используется как в системах Windows, так и в Linux.
Я знаю о некоторых функциях, связанных с Java 7 Однако они не позволяют переместить все содержимое папки в другое место, если она не пуста, что в моем случае является требованием. Я также нашел Apache Common FileUtils, который выглядит многообещающе. Однако в его документации говорится, что следует выполнить операцию "копировать и удалить", если sourceFolder
и destinationFolder
не находятся в одной и той же файловой системе.
Итак, мой вопрос: когда я использую этот класс FileUtils
, как я могу проверить файловые системы sourceFolder
и destinationFolder
кроссплатформенным образом?