2011-05-02 5 views
2
#!/usr/bin/perl 

use File::Copy; 
use File::Copy::Recursive; 

$old_folder=$ARGV[0]; 
$new_folder=$ARGV[1]; 
$folder_loc=$ARGV[2]; 

print "Content-type:folder rename\n\n"; 

#rename($arg1,$arg2) || print "Don't have permission to rename.<br><br>"; 
File::Copy::Recursive::dircopy("$folder_loc/$old_folder","$folder_loc/$new_folder"); 

print "Renaming Done!"; 

exit; 

здесь моя старая папка также существует после папки rename.how можно удалить старую папку после переименования. PLS помочь мнеПереименовать папку без старой папки

ответ

5

Я думаю, что вы хотите использовать File::Copy::Recursive::dirmove вместо dircopy

+0

Большое спасибо макросами, еще одна вещь, мой размер файла составляет около 1,2 Гб, так что это занимает 25 мин времени, чтобы переименовать его, есть ли способ, чтобы сократить время. – picnic4u

+0

@ picnic4u: добро пожаловать! О вашем дополнительном вопросе: я предполагаю, что у вас есть ** каталог **, размер которого составляет около 1,2 Гб, и что он содержит несколько файлов и подкаталогов. В этом случае время доступа к диску - это то, что ограничивает производительность, и вы не можете с этим справиться. Один из вариантов, предполагающий, что ваша программа работает на Linux, - это использовать команду linux 'mv', которую вы можете вызывать из perl, используя [' system() '] (http://perldoc.perl.org/functions/system.html). – MarcoS

+0

@macroS: я использую систему windows. поэтому для меня любое предложение – picnic4u

0

Вы можете использовать File::Path для удаления всех деревьев дерева (включая файлы).

Смежные вопросы