Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Копирование фалов с сохранением путей
 
 автор: max90   (26.02.2011 в 12:33)   письмо автору
 
 

Подскажите пожалуйста как можно сделать копирование файлов с сохранением структуры дерева каталогов на пхп. пример такой: download1/4put/pictures/max/1.png скопировать в download2/4put/pictures/max/1.png.

  Ответить  
 
 автор: sim5   (26.02.2011 в 12:37)   письмо автору
 
   для: max90   (26.02.2011 в 12:33)
 

Создать download2, а в ней такое же дерево каталогов как и у download1, а затем копирование.

  Ответить  
 
 автор: max90   (26.02.2011 в 12:41)   письмо автору
 
   для: sim5   (26.02.2011 в 12:37)
 

вся проблема в том, что я не знаю как создать дерево каталогов

  Ответить  
 
 автор: sim5   (26.02.2011 в 13:43)   письмо автору
 
   для: max90   (26.02.2011 в 12:41)
 

Последовательно, сверху вниз, то есть от самой верхней папки его, в ней первую вложенную и т.д., функцией:

mkdir(string pathname, int mode)
mkdir - cоздает директорию, специфицированную параметром pathname с указанным режимом mode.
Заметьте, что вам, скорее всего, понадобится специфицировать режим mode как 8-ричное число, т.е. оно должно иметь ведущий нуль.
Возвращает TRUE при успехе, FALSE при неудаче.
Пример:
<?
mkdir 
("/path/to/my/dir"0700);

  Ответить  
 
 автор: max90   (26.02.2011 в 13:59)   письмо автору
 
   для: sim5   (26.02.2011 в 13:43)
 

mkdir может создать папку path, но не может создать сразу path/to/my/dir. то есть мне надо сначала создать папку path, затем последовательно вложенные папки to, my, dir. есть вариант разделить path/to/my/dir на отдельные элементы и поместить в массив, затем создавать последовательно по одной папке, но так как глубина вложенности каталогов не одинакова (нужно переместить около 7000 файлов с разными путями), то это не самый легкий вариант.

  Ответить  
 
 автор: sim5   (26.02.2011 в 14:01)   письмо автору
 
   для: max90   (26.02.2011 в 13:59)
 

Ну это уже не ко мне притензии.

  Ответить  
 
 автор: max90   (26.02.2011 в 14:03)   письмо автору
 
   для: sim5   (26.02.2011 в 14:01)
 

к Вам никаких претензий))) Посмотрим мож еще кто отпишется

  Ответить  
 
 автор: sim5   (26.02.2011 в 14:13)   письмо автору
 
   для: max90   (26.02.2011 в 14:03)
 

Ждите, но таковых средств нет, чтобы одним движением создать вложение директорий.

  Ответить  
 
 автор: max90   (26.02.2011 в 14:29)   письмо автору
 
   для: sim5   (26.02.2011 в 14:13)
 

Тогда придется через массивы, а так спасибо за помощь ;)

  Ответить  
 
 автор: sim5   (26.02.2011 в 14:59)   письмо автору
 
   для: max90   (26.02.2011 в 14:29)
 

Вы ведь все равно будете получать файлы обходя свои вложения, если только конечно не решили использовать glob. При обходе что вам мешает, если деректория, то проверить, существует ли ее копия, и если нет создать? Пока доберетесь до файлов своих, уже и готовая копия директорий будет.

  Ответить  
 
 автор: Shorr Kan   (26.02.2011 в 16:53)   письмо автору
 
   для: max90   (26.02.2011 в 13:59)
 

Да вы не правы...


<?
 mkdir
('path/to/my/dir',0700,true);
?>


вы удивитесь ;)

А еще...

<?
 exec
('cp -R dir1 dir2');
?>


еще надо? :)

  Ответить  
 
 автор: max90   (26.02.2011 в 22:58)   письмо автору
 
   для: Shorr Kan   (26.02.2011 в 16:53)
 

Огроменное спасибо! То что нужно )))

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования