前提
環境は、以下である。
OS : Windows 10 22H2
Powershell : 7.4.0
メモリ : 16GB
※ 最低限必要そうな情報のみ、記載している。
結論
ZipFileクラスのCreateFromDirectoryメソッドでフォルダをzip形式に圧縮する。
- フォルダを圧縮する場合のサンプルコード
$folder = Join-Path $env:USERPROFILE "\Desktop\Test"
$zip = Join-Path $env:USERPROFILE "\Desktop\Test.zip"
[IO.Compression.ZipFile]::CreateFromDirectory($folder,$zip)
詳細
Compress-Archiveコマンドレットを使用して、サイズの大きいフォルダを
圧縮しようとすると、メモリ使用量が多くなる。
私が、以前、18.4GBのフォルダをCompress-Archiveコマンドレットで
圧縮した際は、メモリ使用量が90%以上になった。
同じフォルダをZipFileクラスのCreateFromDirectoryメソッドを使用して圧縮すると、
メモリ使用率が多い時でも、40%台に収まった。
参考文献