2013-09-02 5 views
0

У меня есть папка, в которой находится файл .dat и один .zip файл, я должен переместить файл .zip в другой каталогперемещение архива в другой каталог

У меня есть две папки один является

1) c:\source folder --> having two files abc.dat and other is abc.zip 
2) c:\destination ---> in which zip shpould be get copied 

пожалуйста, посоветуйте, как achiev это то, что я делал обряд в настоящее время является ...

File directory = new File(sourceFolder); 
    File[] listFiles = (mcrpFilePath).listFiles(); 

for (File f : listFiles) { 
     if (f.isFile()) { // ?? here logic to pick up the zip file 

     //logic to move the zip file to other directory 

      } 
     } 
+0

Вы просто построили для-каждого цикла. Что вы пробовали для логики, которую вы хотите построить? – hexafraction

ответ

2

Использование File.renameTo

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

Вот Example

Или вы можете использовать Files#move (если вы используете Java 7)

Переместить или переименовать файл в целевой файл.

здесь Example using move()

+0

Так же, как хэдз-ап, из-за изменений API, ссылка на старые версии документации Java, такие как 1.4.2, не так хороша, как ссылка на более новые, такие как Java 6 или 7. – hexafraction

+1

@hexafraction Я согласен с вами. обновил мой ответ, чтобы связать последнюю. – Prabhaker

1

Как просто, как с помощью метода renameTo() в классе File.

public boolean renameTo(File dest); 

переименовывает файл, обозначенный этим абстрактным путем.

Получить file полный путь и переименовать его в требуемое место.

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

1

Для определения вашего почтового индекса файла:

if(f.getName.equals("abc.zip")) 

или для всех почтовых файлов:

if(f.getName.endsWith(".zip")) 

С регулярным выражением:

if(f.getName.matches("abc*\\.zip")) 

Для moving it:

f.renameTo(new File("C:\dest\abc.zip"); 

Или, более просто:

new File("C:\src\abc.zip").renameTo("C:\dest\abc.zip"); 

ловить исключения по мере необходимости.

+0

Я не думаю, что есть метод в классе 'File' под названием' moveTo'. Возможно, вы имели в виду 'renameTo', как и другие ответы. –

+0

@hexafraction pls советуют имя zip длинное и имя также содержат timeoamp как этот abc + timestamp, поэтому я могу использовать wild card, например abc * .zip, так что это будет (f.getName.equals ("abc *. zip ")), пожалуйста, сообщите –

+0

@JoshM Извините, первый образец был прав. – hexafraction

1

Используйте java.io.File и его методы, чтобы получить список.zip-файлы и переместить их (Tutorial - Moving a File or Directory).

import static java.nio.file.StandardCopyOption.*; 
... 
Files.move(source, target, REPLACE_EXISTING); 

SOURCE

+0

Я использую JDK 1.5 –

Смежные вопросы