Перемещение файла вызывает IOException из-за разного объема монтирования в Linux - PullRequest
0 голосов
/ 20 июля 2011

Привет, моя java-программа должна переместить файлы в папку, которая находится в другой смонтированной папке.Я хочу обработать его как обычный путь к папке и переместить файл, используя

boolean success = file.renameTo(new File(dir, file.getName()));

, он всегда имеет статус ложного, а файл не перемещается.

Когда я пытаюсь с filechannel.transferFrom(fcSource, 0, fcSource.size());он вызывает исключение ввода-вывода.

SEVERE 20110720 15.41.29 AccessLogProcessor:moveToArchive-File
    [/opt/apache2/logs/access_log.20110620.0015.tmp] move to
    [/opt/ahache2/logs/old] not success.. Try Special move with filechannel
SEVERE 20110720 15.41.29 AccessLogProcessor:moveToArchive-SpecialFileMove for file
     [/opt/apache2/logs/access_log.20110620.0015.tmp] failure
    ERROR:java.io.IOException: **No such file or directory

Папка назначения в linux выглядит нормально, и у моего идентификатора нет проблем с правами доступа.Папка /opt/ahache2/logs/old является смонтированной.

1 Ответ

1 голос
/ 20 июля 2011

О 'renameTo', возвращающем false, и в соответствии с API :

Возможность перемещения этого файла из одной файловой системы в другую зависит от платформы.,Возвращаемое значение всегда следует проверять, чтобы убедиться, что операция переименования прошла успешно.

Поэтому, возможно, вы не можете использовать 'renameTo', чтобы делать то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...