Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Создание копии дерева каталогов на диске


Автор: zone51 19.1.2007, 14:47
Здравствуйте, скажите, как можно лучше организовать зеркальное копирование дерева папок со всем содержимым с ФТП сервера на локальный диск? Реализовать рууками или есть что то специфическое для этого? Спасибо.

Автор: LSD 19.1.2007, 18:44
Используй http://jakarta.apache.org/commons/vfs/.

Автор: zone51 19.1.2007, 19:00
LSD, 
А ё! Это ж скока качать надо. А потом все это в класспачи подрубать. По мойму это для моей задачи круто слишком. Да я и что то не понял как оно работает smile  smile 

зы. Кстати а можно с помощью этого пакета полностью скопировать папку со всеми ее подкаталогами и содержимым?

зы2. 
LSD
Посмотрите пожалста, правильно ли я делаю:
Код
FileSystemManager manager = VFS.getManager();
FtpFileObject o1 = manager.resolveFile("ftp://dir1");
FileObject o2 = manager.resolveFile("file://D:/Dir2");
o2.copyFrom(o1, new AllFileSelector());

То есть можно ли указывать каталоги во второй и третьей строчках? Спасибо. smile 

Автор: LSD 20.1.2007, 14:18
Можно.

P.S. Вместо кнопки "Цитата" пользуйся комбобоксом "Код".

Автор: zone51 20.1.2007, 23:32
LSD, 
Цитата

P.S. Вместо кнопки "Цитата" пользуйся комбобоксом "Код".

Ок
Код

FileSystemManager manager = VFS.getManager();
FtpFileObject o1 = manager.resolveFile("ftp://anonymous@anonymous:127.0.0.1/dd");
FileObject o2 = manager.resolveFile("/home/soft");
o2.copyFrom(o1, new AllFileSelector());

Код зависает-в логах пишет что скорость скачки 0.00 Кб\с
Нада помойму бинарный режим задать тока вот как это сделать через менеджер?
Спасибо. smile  smile 

Автор: LSD 22.1.2007, 00:01
Он и так работает в бинарном режиме (я вчера проверил этот код, все работает).

VFS достаточно подробно логгируется. Закинь в CLASSPATH файлик log4j.xml такого содержания:
Код
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration>

  <appender name="Console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%-5p: %m%n"/>
    </layout>
  </appender>

  <root>
    <priority value ="ALL"/>
    <appender-ref ref="Console"/>
  </root>

</log4j:configuration>

и посмотри логи Commons NET.

Автор: zone51 23.1.2007, 14:43
LSD, 
А где располагаются эти логи? А то я опять все сделал и ничего не копируется вообще, права в лине проверял, все вроде ок. Спасибо.  smile  smile 

Автор: LSD 23.1.2007, 15:03
В данном случае он должен писать ошибки в консоль.

Автор: LSD 23.1.2007, 16:51
Ты библиотеку log4j к проекту подключил?

Автор: zone51 23.1.2007, 17:35
LSD, 
Я пытался подключить но оно писало что не могу запустить зип-архив. Это под линуксом я в класспач запихнул. Но этот вопрос я уже решил, спасибо, сейчас тестирую..мне бы с commons.logging разобрацца  smile  smile 
Спасибо LSD

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)