Перемещение файлов

chiffa

Guest
Перемещение файлов

Всем привет. У меня такой вопрос: есть директория А, в которой лежат фалы (допустим 10 штук.) Мне надо эти файлы сскопировать в директорию В. Как это можно сделать?
После этого мне надо будет обработать каждый файл отдельно, к применру вставить в него некоторые записи. Тоесть буду очень благодарен если подскажите как обращаться к каждому файлу по очереде.
Название файлов я не знаю.
Зарание спасибо. Понитмаю что изложил вопрос не слишком коректно, но ....
 

Кром

Новичок
Тебе нужно ознакомиться с функциями PHP для работы с файлами и каталогами http://php.net/manual/en/ref.filesystem.php

И далее, открыть каталог, считать имена файлов в массив скопировать в другую директорию. Все функции - открытие каталога и т.д. указаны в ссылке. Там-же для каждой функции примеры использования.
 

chiffa

Guest
Вообщем у меня получился такой код:
PHP:
$kyda="/home/book/uploads/";
$dir = "C:/tmp/";
if (is_dir($dir)) {
   if ($dh = opendir($dir)) {
       while (($file = readdir($dh)) !== false) {

        copy($file, $kyda);
               }
               echo "$file";
       closedir($dh);
   }
}

При обработке выдаёт ошибку:

Warning: copy(.) [function.copy]: failed to create stream: Permission denied in z:\home\localhost\www\sms1\failu.php on line 8

Warning: copy(..) [function.copy]: failed to create stream: Permission denied in z:\home\localhost\www\sms1\failu.php on line 8

Warning: copy(1.txt) [function.copy]: failed to create stream: No such file or directory in z:\home\localhost\www\sms1\failu.php on line 8

Warning: copy(~ZC04904.txt) [function.copy]: failed to create stream: No such file or directory in z:\home\localhost\www\sms1\failu.php on line 8

Warning: copy(Текстовый документ.txt) [function.copy]: failed to create stream: No such file or directory in z:\home\localhost\www\sms1\failu.php on line 8


Кто подскажет в чём дело?:confused:
 

IntenT

SkyDiver
chiffa
Переводчик.
Тебе непонятен смысл этих сообщений?
Или непонятно почему они появились?????
 

chiffa

Guest
IntenT, непонятно почему они появились, да впринципи и значение их я понять не могу. Файл в дериктории находится точно!!!
 

chiffa

Guest
IntenT, у меня С:/tmp эт осетевой ресурс, могут быть загоны из-за этого?
 

zmeigorin

Guest
первые две строки: этих файлов нет. точно. это ссылки на верхний каталог и на себя. =)
нужно делать
if ($file != "." && $file != "..")
перед копированием.
 

василыч

Guest
возможно нет доступа к папке, в которую копируешь?
 

chiffa

Guest
Автор оригинала: zmeigorin
первые две строки: этих файлов нет. точно. это ссылки на верхний каталог и на себя. =)
нужно делать
if ($file != "." && $file != "..")
перед копированием.
Вот код по твоему совету!

PHP:
$kyda="/home/book/uploads/";
$dir = "C:/tmp/";
if (is_dir($dir)) {
   if ($dh = opendir($dir)) {
       while (($file = readdir($dh)) !== false) {
          if ($file != "." && $file != "..")
          {
        copy($file, $kyda);
        }
               }
               echo "$file";
       closedir($dh);
   }
}
А выдаёт всё равно


Warning: copy(1.txt) [function.copy]: failed to create stream: No such file or directory in z:\home\localhost\www\sms1\failu.php on line 9

Warning: copy(~ZC04904.txt) [function.copy]: failed to create stream: No such file or directory in z:\home\localhost\www\sms1\failu.php on line 9

Warning: copy(Текстовый документ.txt) [function.copy]: failed to create stream: No such file or directory in z:\home\localhost\www\sms1\failu.php on line 9

Какие идеи. Файл в дериктории есть, и доступ к папкам обсолютно свободный!!!
 

IntenT

SkyDiver
chiffa
ТЫ упрямо игнорируешь мой ответ.
Я тебе еще раз говорю - НЕТ ТАКИХ ФАЙЛОВ ТАМ, ОТКУДА ТЫ ИХ ПЫТАЕШЬСЯ СКОПИРОВАТЬ!
ЕЩЕ РАЗ, ЧТОБ СОВСЕМ ПОНЯТНО СТАЛО

в C:/tmp/ - они есть
А ТАМ, ОТКУДА ТЫ ИХ ПЫТАЕШЬСЯ СКОПИРОВАТЬ - НЕТУ!!!



Бери мануал, и медитируй над описанием функции copy до полного просветления.
 

chiffa

Guest
IntenT, и ещё раз. Мне выдало Warning: copy(1.txt) [function.copy]: failed to create stream: No such file or directory in z:\home\localhost\www\sms1\failu.php on line 9 Следственно оно пытается скопировать файл "1.txt" Так? Так. Если оно выбирает имя файла значит оно его пытается скопировать, значит он там есть (там это оттуда "ОТКУДА ТЫ ИХ ПЫТАЕШЬСЯ СКОПИРОВАТЬ!"). Логично? Или я чего-то не понимаю?
 

Demiurg

Guest
клиника.
chiffa
всегда указывай полный путь. и что у тебя за файловая система в которое есть и C:/tmp/ и /home/book/uploads/ ?
 

chiffa

Guest
Demiurg, у меня NTFS. При указании полного пути ничего не изменяется!
PHP:
$kyda="z:/home/book/uploads/";
$dir = "C:/tmp/";
if (is_dir($dir)) {
   if ($dh = opendir($dir)) {
       while (($file = readdir($dh)) !== false) {
          if ($file != "." && $file != "..")
          {
        copy($file, $kyda);
        }
               }
               echo "$file";
       closedir($dh);
   }
}
Результат:

Warning: copy(1.txt) [function.copy]: failed to create stream: No such file or directory in z:\home\localhost\www\sms1\failu.php on line 9

Warning: copy(~ZC04904.txt) [function.copy]: failed to create stream: No such file or directory in z:\home\localhost\www\sms1\failu.php on line 9

Warning: copy(Текстовый документ.txt) [function.copy]: failed to create stream: No such file or directory in z:\home\localhost\www\sms1\failu.php on line 9
 

Demiurg

Guest
всегда указывай полный путь. (прочитать 10 раз)
 

chiffa

Guest
гоша, я не буду опускатьсядо твоего уровня! Не знаешь что сказать - лучьше помолчи!
 

chiffa

Guest
IntenT, твою девизию!!!! Это ж надо было так тормозить!!!! НУ конечно!!! Я же задавал ему только путь к файлам, а какой именно файл не указывал!!!! Огромное спасибо!!!!! Данное обсуждение надо будет распечатать и повесить на видно место, что впредь не повадно было!!!!!!!
 
Сверху