Strict Standards: Resource ID#33 used as offset, casting to integer (33) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#35 used as offset, casting to integer (35) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#36 used as offset, casting to integer (36) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Сменить имя файла.
ТвойWeb » WebMaster класс » PHP/Perl » Сменить имя файла.

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

1. scar - 15 Мая, 2008 - 10:34:09 - перейти к сообщению
Здравствуйте! Моя цель, создать скрипт который будет в определенной папке менять имена всех файлов на $имя = $префикс.$имя;
Вот мои попытки:

CODE:
<?php
$pref = "gvozdey_";
$dir = "C:\Documents and Settings\Леша\Рабочий стол\Новая папка";
if(!($dp = opendir($dir))) die("Не открыло!");
while($file = readdir($dp))
if($file != '.' && $file != '..'){
$name = $pref.$file;

if($file_copy = copy($file,$name)){
if($delete = unlink($file)) { echo "Не удалилось!"; }
echo "$file_copy<br>";
}
}
closedir($dp);
?>



Выдает ошибку: Warning: copy(1.txt) [function.copy]: failed to open stream: No such file or directory in Z:\home\localhost\www\php\changename.php on line 9


Использовал функцию rename() ... не помогло. Вот что сказало:
Warning: rename(1.txt,gvozdey_1.txt) [function.rename]: No such file or directory in Z:\home\localhost\www\php\changename.php on line 9


Помогите чем сможете. Заранее спасибо!
2. yura3d - 15 Мая, 2008 - 11:46:39 - перейти к сообщению
scar
Ну во первых все обратные слеши в пути к файлу нужно удваивать (из-за этого у тебя ошибки), а лучше заменить прямыми. Во вторых вместо связки copy()+unlink() лучше применять rename().
3. Furax - 15 Мая, 2008 - 21:10:53 - перейти к сообщению
Кроме того, надо указывать не имя файла, а полный путь к старому и новому файлам:
CODE:
rename("$dir\\$file", "$dir\\$pref$file");
4. pikasso - 21 Мая, 2008 - 11:53:52 - перейти к сообщению
CODE:
<?php

$pref = "gvozdeygvozdeygvozdey_";
$dir_path = "C:/1/";
if ($handle = opendir($dir_path)) {
while (false !== ($file = readdir($handle))) {
if($file != '.' && $file != '..'){
$new_name = $pref.$file;

rename($dir_path.$file, $dir_path.$new_name);
}
}
closedir($handle);

echo "Все пучком !";
}

?>

Пробуй.
5. kastyan - 21 Мая, 2008 - 17:00:35 - перейти к сообщению
А зачем всех файлов ? может похожих по названию ?
6. Furax - 21 Мая, 2008 - 22:37:41 - перейти к сообщению
pikasso
Не уверен, что винда правильно воспримет прямые слэши...
7. yura3d - 22 Мая, 2008 - 04:47:38 - перейти к сообщению
Furax пишет:
Не уверен, что винда правильно воспримет прямые слэши...

Начиная с первых релизов PHP4 на всех ОС можно использовать прямые слэши. Интерпретатор автоматически будет преобразовывать их в обратные если это необходимо

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0364]     [ Gzipped ]