Microsoft.PowerShell.Archive
Microsoft.PowerShell.Archive copied to clipboard
Compress-Archive -Update delete archive if file could not be appended
Description
When using Compress-Archive
with -Update
to append a file to an existing ZIP file, and the current file used is locked by another process the ZIP file is deleted. If it make sense or not to append an open file Compress-Archive
should not remove a not empty archive.
Reproduce
# Setup test files
'Test file one content' > 'test_file_1.txt';
'Test file two content' > 'test_file_2.txt';
# Prepare file handle
$lockFile = Get-ChildItem '.\test_file_2.txt';
$lockTestFile2 = [System.IO.File]::Open($lockFile.FullName, [System.IO.FileMode]::Open, [System.IO.FileAccess]::Write, [System.IO.FileShare]::ReadWrite)
Compress-Archive -Path .\test_file_1.txt -DestinationPath 'ZipFile.zip' -Update
# Watch ZipFile.zip disappear
Compress-Archive -Path .\test_file_2.txt -DestinationPath 'ZipFile.zip' -Update
$lockTestFile2.Dispose();
This issue also occurs when -Path
is empty:
@() | Compress-Archive -DestinationPath 'ZipFile.zip' -Update
I believe this issue is solved in the 2.0 preview, but I need to double check and make sure.