Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Копирование файлов и папок в другое место

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Помогите!
idimka
Отправлено: 15 Июня, 2007 - 23:01:48
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Июнь 2007  


Помог: 0 раз(а)




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

вот код:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $dirname= "../1";//место, откуда надо скопировать
  4. copyFiles($dirname);
  5.  
  6.   function copyFiles($dirname)
  7.   {
  8.     // Открываем директорию
  9.     $dir = opendir($dirname);
  10.  
  11.     // В цикле выводим её содержимое
  12.     while (($file = readdir($dir)) !== false)
  13.     {
  14.       // Если это файл копируем его
  15.       if(is_file($dirname."/".$file))
  16.       {
  17.         copy($dirname."/".$file, "../2/".$file);
  18.       }
  19.  
  20.       // Если это директория - создаём её
  21.       if(is_dir($dirname."/".$file) && $file != "." && $file != "..")
  22.       {
  23.         // Создаём директорию
  24.         mkdir("../2/".$file);
  25.  
  26.         // Вызываем рекурсивно функцию copyFiles
  27.         copyFiles("$dirname/$file");
  28.       }
  29.     }
  30.     // Закрываем директорию
  31.     closedir($dir);
  32.   }
  33. ?>
  34.  
 
 Top
valenok Модератор
Отправлено: 16 Июня, 2007 - 10:18:39
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




http://ru.php.net/copy
В комментариях смотрите. Всё давным давно написано


-----
Truly yours, Sasha.
 
My status
 Top
kamikadze
Отправлено: 16 Июня, 2007 - 10:53:03
Post Id



Склонен к самоубийству


Покинул форум
Сообщений всего: 391
Дата рег-ции: Янв. 2007  


Помог: 0 раз(а)




А можно сказать какие именно, а то инглыш сразу не легко видеть и понимать!
 
 Top
valenok Модератор
Отправлено: 16 Июня, 2007 - 11:05:15
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. // A function to copy files from one directory to another one, including subdirectories and
  5. // nonexisting or newer files. Function returns number of files copied.
  6. // This function is PHP implementation of Windows xcopy  A:dir1* B:dir2 /D /E /F /H /R /Y
  7. // Syntaxis: [$number =] dircopy($sourcedirectory, $destinationdirectory [, $verbose]);
  8. // Example: $num = dircopy('A:dir1', 'B:dir2', 1);
  9.  
  10. function dircopy($srcdir, $dstdir, $verbose = false) {
  11.   $num = 0;
  12.   if(!is_dir($dstdir)) mkdir($dstdir);
  13.   if($curdir = opendir($srcdir)) {
  14.     while($file = readdir($curdir)) {
  15.       if($file != '.' && $file != '..') {
  16.         $srcfile = $srcdir . '\' . $file;
  17.        $dstfile = $dstdir . '\' . $file;
  18.        if(is_file($srcfile)) {
  19.          if(is_file($dstfile)) $ow = filemtime($srcfile) - filemtime($dstfile); else $ow = 1;
  20.          if($ow > 0) {
  21.            if($verbose) echo "Copying '$srcfile' to '$dstfile'...";
  22.            if(copy($srcfile, $dstfile)) {
  23.              touch($dstfile, filemtime($srcfile)); $num++;
  24.              if($verbose) echo "OKn";
  25.            }
  26.            else echo "Error: File '$srcfile' could not be copied!n";
  27.          }                  
  28.        }
  29.        else if(is_dir($srcfile)) {
  30.          $num += dircopy($srcfile, $dstfile, $verbose);
  31.        }
  32.      }
  33.    }
  34.    closedir($curdir);
  35.  }
  36.  return $num;
  37. }
  38.  
  39. ?>
  40.  
  41.  




PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. exec("cp -r /var/www/mysite /var/backup");
  4. ?>
  5.  



PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4.   // copy a directory and all subdirectories and files (recursive)
  5.   // void dircpy( str 'source directory', str 'destination directory' [, bool 'overwrite existing files'] )
  6. function dircpy($basePath, $source, $dest, $overwrite = false){
  7.     if(!is_dir($basePath . $dest)) //Lets just make sure our new folder is already created. Alright so its not efficient to check each time... bite me
  8.     mkdir($basePath . $dest);
  9.     if($handle = opendir($basePath . $source)){        // if the folder exploration is sucsessful, continue
  10.         while(false !== ($file = readdir($handle))){ // as long as storing the next file to $file is successful, continue
  11.             if($file != '.' && $file != '..'){
  12.                 $path = $source . '/' . $file;
  13.                 if(is_file($basePath . $path)){
  14.                     if(!is_file($basePath . $dest . '/' . $file) || $overwrite)
  15.                     if(!@copy($basePath . $path, $basePath . $dest . '/' . $file)){
  16.                         echo '<font color="red">File ('.$path.') could not be copied, likely a permissions problem.</font>';
  17.                     }
  18.                 } elseif(is_dir($basePath . $path)){
  19.                     if(!is_dir($basePath . $dest . '/' . $file))
  20.                     mkdir($basePath . $dest . '/' . $file); // make subdirectory before subdirectory is copied
  21.                     dircpy($basePath, $path, $dest . '/' . $file, $overwrite); //recurse!
  22.                 }
  23.             }
  24.         }
  25.         closedir($handle);
  26.     }
  27. }
  28.  
  29. ?>
  30.  






http://web[dot]archive[dot]org/web/20060[dot][dot][dot]nction[dot]copyr.php


-----
Truly yours, Sasha.
 
My status
 Top
idimka
Отправлено: 16 Июня, 2007 - 14:34:11
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Июнь 2007  


Помог: 0 раз(а)




Спасибо, помогло.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB