2011-05-02 6 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.2GB 그래서 시간을 줄일 수있는 방법이 이름을 바꿀 수있는 25 분의 시간이 걸리는 것입니다. – picnic4u

+0

@ picnic4u : 환영합니다! 귀하의 추가 질문에 대해 : 나는 당신이 크기가 약 1.2 Gb 인 ** 디렉토리 **를 가지고 있다고 가정하고 그 안에 몇 개의 파일과 하위 디렉토리가 있다고 가정합니다. 이 경우 디스크 액세스 시간이 성능을 제한하는 것이므로 사용자가 할 수있는 일은별로 없습니다. 하나의 대안은, 당신의 프로그램이 리눅스에서 실행된다고 가정하면 linux'mv' 명령을 사용하는 것입니다.이 명령은 ['system()'] (http://perldoc.perl.org/functions/system.html)을 사용하여 perl에서 호출 할 수 있습니다.). – MarcoS

+0

@macroS : Windows 시스템을 사용하고 있습니다. 그래서 내 제안을 위해 – picnic4u

0

File::Path을 사용하여 전체 디렉토리 트리 (파일 포함)를 제거 할 수 있습니다.