2014-01-12 3 views
0

Я пытаюсь переместить файлы из одного места в другое место в файловой системе Linux. На самом деле мой исходный каталог находится в одной файловой системе, а целевой каталог монтируется в одну файловую систему. Поэтому я использую метод класса File.renameTo() для перемещения файлов. Но он не переносит файлы. Но когда я использую ту же логику для перемещения файлов из одного каталога в другой каталог, который монтируется в одной файловой системе, он работает нормально. Поэтому я думаю, что file.renameTo() зависит от платформы. Поэтому я использую другие классы для перемещения файлов. Итак, теперь мой выбор - пойти за классом org.apache.commons.io.FileUtils. Он содержит метод, как,Невозможно переместить файл из одного места в другое место в файловой системе linux с помощью java

public static void moveFile(File srcFile,File destFile) throws IOException 

http://commons.apache.org/proper/commons-io/javadocs/api-release/org/apache/commons/io/FileUtils.html#moveFile%28java.io.File,%20java.io.File%29

Так я загруженную Обще-ю-версии 1.3 баночку. Он содержит так много методов для копирования файла, но я не могу найти этот метод moveFile. Пожалуйста, может кто-нибудь сказать мне, загрузил ли я правильный файл jar?

Может ли кто-нибудь рассказать мне о банке, которая содержит метод org.apache.commons.io.FileUtils.(File srcFile,File destFile).

Спасибо заранее.

+0

Почему бы использовать обыкновенные -io версии 1.3, когда 2.4 является текущим? –

ответ

2

Javadoc ясно говорит «1,4».

Since: 
1.4 

Поэтому вы не найдете его в 1.3.

2

Java 1.7 имеет более надежный способ перемещения файлов, попробуйте

java.nio.file.Files.move(Path source, Path target, CopyOption... options) 
+0

Спасибо за ответ. Я уже пробовал с Files.move. – Vidya

+0

Спасибо. Я загрузил обе версии commons-io.1.3 и commons-io-2.0. Но я пробовал только с 1.3. Теперь я попробую с версией 2.0. – Vidya

+0

commons-io-2.0 решил мою проблему. Теперь я могу перемещать файлы из одного места в другое. Но если в каталоге назначения уже содержится файл, он бросает исключение org.apache.commons.io.FileExistsException: Файл уже существует в месте назначения. Но я не хочу получать это исключение. Вместо этого я хочу перезаписать старый файл. Поэтому я пытаюсь это сделать. Спасибо за помощь. – Vidya

1

Может быть полезно для некоторых один

Path pathobj1 = Paths.get(srcDir,filename); 
Path pathobj2= Paths.get(targetDir,pathobj1.getFileName().toString()); 
Files.move(pathobj1 , pathobj2, REPLACE_EXISTING); 

Пакет:

import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; 
Смежные вопросы