Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2011, 11:04   #1
calugin
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 22
По умолчанию Переименование всех файлов в каталоге

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

Код:
<?php
$patch = "C:/Music/";
$handle = opendir($patch);

while (($file = readdir($handle)) !== false)
{
	if ($file != "." && $file != "..")
	{
		if (is_dir($patch.$file))
		{
			rename($patch.$file, $patch.ucwords(strtolower($file)));
		}
	}
	
	if (is_file($patch.$file))
	{
		rename($patch.$file, $patch.ucwords(strtolower($file)));
	}
	
}
closedir($handle);
?>
calugin вне форума Ответить с цитированием
Старый 14.05.2011, 11:34   #2
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Цитата:
Сообщение от calugin Посмотреть сообщение
Написал небольшой скрипт. По задумке должен перебирать все файлы и каталоги, попутно переименовывая их, но скрипт кривоватый, поэтому обращаюсь за помощью.
А в чём помощь то нужна? На первый взгляд у вас и так всё работает. Можно конечно немного сократить, ну это совсем малость.

PHP код:
// В качестве аргумента передаем путь(имя) до папки.
public function renameDirAndFile ($patch) {
 
$handle opendir($directory);
  while((
$file readdir($handle))) {
    if (
is_file ($patch."/".$file)) /*.переименовываем файл.*/
      
else if (is_dir ($patch."/".$file) && ($file != ".") && ($file != ".."))
         
/*.переименовываем директорию.*/
  
}
  
closedir($handle);
  
/*переименовать patch*/


Последний раз редактировалось slips; 14.05.2011 в 11:36.
slips вне форума Ответить с цитированием
Старый 14.05.2011, 11:43   #3
calugin
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 22
По умолчанию

Проблема в том, что скрипт отказывается работать с вложенными папками. Переименовывает только один каталог, а каталоги ниже остаются нетронутыми.
calugin вне форума Ответить с цитированием
Старый 14.05.2011, 12:05   #4
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Цитата:
Сообщение от calugin Посмотреть сообщение
Проблема в том, что скрипт отказывается работать с вложенными папками. Переименовывает только один каталог, а каталоги ниже остаются нетронутыми.
Попробуйте вызывать рекурсию после того как нашли и переименовали папку

PHP код:
else if (is_dir ($patch."/".$file) && ($file != ".") && ($file != "..")){ 
         
/*.переименовываем директорию.*/
         
renameDirAndFile($patch."/".$file);
      } 
slips вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переименование файлов в папке макросом из Excel xamillion Microsoft Office Excel 32 14.10.2013 11:48
Переименование файлов в папке. mr_Smitt Общие вопросы Delphi 1 28.09.2009 17:20
Переименование группы файлов Meh Общие вопросы Delphi 2 28.07.2009 12:31
Показ всех имен файлов в каталоге[Delphi] sergey31 Помощь студентам 2 27.07.2008 16:43
как посчитать количество файлов в каталоге? помогите плиз older Общие вопросы Delphi 5 23.05.2008 14:22