0
누군가 나를 기쁘게 해드릴 수 있겠습니까 .....perl을 사용하여 특정 폴더에있는 개별 폴더를 압축하는 방법은 무엇입니까?
내 폴더에는 D : \ Zip 안에 A, B, C라고 쓰여 있습니다. A.zip, B.zip을 우편으로 보내야합니다 & C. 우편 번호. 아래 코드는 제가 시도한 코드입니다. CODE :
enter code here
#!/usr/bin/perl
use strict;
use Cwd;
use File::Copy;
use Archive::Zip qw(:ERROR_CODES :CONSTANTS);
use IO::Compress::Zip qw(zip $ZipError) ;
use File::Basename 'basename';
my $path1=getcwd;
my $zipfile=getcwd."\.zip";
my $zip;
opendir(DIR, "$path1\/");
my $mainFolder=grep(/"$path1\/"/,readdir(DIR));
close DIR;
#### Zip Module #####
my $f2;
my $newzipname=$mainFolder;
print $mainFolder."\n";
foreach my $f($mainFolder)
{
print $f."\n";
print $mainFolder."asfsd\n";
my $zip=Archive::Zip->new();
$zip->addTree("$f");
die 'write error' unless $zip->writeToFileNamed($path1.'.zip') == AZ_OK;
exit 0;
}
감사합니다. 작동하지만 폴더 중 하나에 대해 삭제해야하는 Thumbs.db 파일을 만들고 있습니다. 이 글을 쓰려고했지만 여전히 삭제되지는 않습니다. CODE : 내 $ 항목을 foreach는 ($ 경로) \t { \t \t (-e "$ 경로 \ /Thumbs.db") \t \t { \t \t \t 링크 해제 ("$ 경로 \ /Thumbs.db")의 경우 또는 "Thumbs.db를 삭제할 수 없습니다"; \t \t} \t} – flora
하면'Thumbs.db' 디렉토리, 당신은'사용 파일 : 경로 QW (remove_tree) 같은 것을해야 할 것입니다; remove_tree (File :: Spec-> catdir ($ path, 'Thumbs.db'));'- unlink는 일반 파일/링크에서만 작동합니다. –
코드가 잘 작동합니다 ... 일부 변경 사항은 현재 요구 사항에 있습니다. 즉 원본 파일의 사본을 작성하고 압축하는 것입니다. 폴더 A 내의 A.zip \ A \ contents와 같은 원본 파일을 직접 압축해야합니다. – flora