いつもお世話になっております。
フォルダの中に入っている複数のエクセルファイルをZip化しようとしています。しかし、Zipファイルが10Mを超えるとファイルを半分ごとにZip化する掟があります。
方法はありますでしょうか?
ご教授お願いいたします。
いつもお世話になっております。
フォルダの中に入っている複数のエクセルファイルをZip化しようとしています。しかし、Zipファイルが10Mを超えるとファイルを半分ごとにZip化する掟があります。
方法はありますでしょうか?
ご教授お願いいたします。
実際にやったことは無いですが、以下ロジックでできる気がします。
ご参考まで
私も実際にやったことは無いですが、以下ロジックを考えてみました。
1ファイルで10MBを超えることがあるのか(以下ロジックでは未考慮)。
トータルで20MB以上のZipファイルになることがあるのか(加味してロジックを書いておくのか←Better)。
ファイルの組み換えをしたら2ファイルのZipに収まるけど、そこまで考慮するのか。
などにもよりますね(後者は面倒なロジックになるので考慮しないのをお勧めします)。
ラフにロジックを考えると
厳密には必要な処理が所々抜けていたり、処理を分解記述する必要があるかもしれません。
HANACCHIさん
いつもお世話になっております。
ファイルを半々にして(必ず偶数である)、Zip用のフォルダ二個の中(新規作成しました)に入れたいのですか、もしよかったらご教授お願いいたします。
ご返事ありがとうございました。
こちらのやり方で試してみます。
ご返事ありがとうございます。
説明不足で申し訳ありません、ファイル一個のサイズはおよそ403KBです。
@yuu
ありゃっ!? 半分にするのを忘れたり、メール添付なんて無いのに・・・
ネットとリアルを混ぜてしまっていました。
(疲れてるのかな・・・、私の投稿は無視してください。参考用に先の投稿は残しておきます)
申し訳ありません。
ファイルの一覧を取得します。
それをdatatable化します
サイズを格納すら列を追加します
そこにdatatable上のファイル名から取得したサイズを格納します
サイズ順で並び替えします
datatableの行数の半分までループさせ、
最小行と最大行のファイルをフォルダAにコピー
次は最小行+1と、最大行−1をフォルダAにコピー
これをコピーしたファイルのサイズ合計が閾値を超える手前まで繰り返す
コピーしていない残りのファイルをフォルダBにコピー
フォルダAを圧縮
フォルダBを圧縮
どうでしょう!?