回答:
Bitserというフリーウェアツールを試してください。無料で、コンテキストメニューからエクスプローラから複数の別々のzipファイルを作成できます。非常に簡単です。エクスプローラでファイルやフォルダをハイライトし、右クリックして[個別のzipに追加]を選択します。
あなたはそれからzipアーカイブにあなたのファイルを置くことを考えるかもしれません Adsenファイルスプリッタ 。
編集する
私はそれについて考える今これはおそらくあなたが望んでいたものではありません...私はとにかくそれを残します。
残念ながら、zipsplitは2GBを超えるファイルでは動作しません。そのため、私は同じ問題に苛立ちました。そこで私は自分の手早く汚いperlスクリプトを書きました。 file + archiveがmaxよりも小さい限り、アーカイブにファイルを追加します。指定サイズ:
# Use strict Variable declaration
use strict;
use warnings;
use File::Find;
# use constant MAXSIZE => 4700372992; # DVD File size
use constant MAXSIZE => 1566790997; # File size for DVD to keep below 2GB limit
# use constant MAXSIZE => 100000000; # Test
use constant ROOTDIR => 'x:/dir_to_be_zipped'; # to be zipped directory
my $zipfilename = "backup"; # Zip file name
my $zipfileext = "zip"; # extension
my $counter = 0;
my $zipsize = undef;
my $flushed = 1;
my $arr = [];
find({wanted =>\&wanted, no_chdir => 1}, ROOTDIR);
flush(@{$arr});
# Callback function of FIND
sub wanted {
my $filesize = (-s $File::Find::name);
LABEL: {
if ($flushed) {
$zipsize = (-s "$zipfilename$counter.$zipfileext");
$zipsize = 0 unless defined $zipsize;
printf("Filesize Zip-File %s: %d\n",
"$zipfilename$counter.$zipfileext", $zipsize);
$flushed = 0;
if (($zipsize + $filesize) >= MAXSIZE) {
$counter++;
$flushed = 1;
printf("Use next Zip File %d, Filesize old File: %d\n",
$counter, ($zipsize + $filesize));
goto LABEL;
}
}
}
if ( $zipsize + $filesize < MAXSIZE ) {
printf("Adding %s (%d) to Buffer %d (%d)\n",
$File::Find::name, $filesize, $counter, $zipsize);
push @{$arr}, $File::Find::name;
$zipsize += $filesize;
}
else {
printf("Flushing File Buffer\n");
flush(@{$arr});
$flushed = 1;
$arr = [];
goto LABEL;
}
}
# Flush File array to zip file
sub flush {
# open handle to write to STDIN of zip call
open(my $fh, "|zip -9 $zipfilename$counter.$zipfileext -@")
or die "cannot open < $zipfilename$counter.$zipfileext: $!";
printf("Adding %d files\n", scalar(@_));
print $fh map {$_, "\n"} @_;
close $fh;
}