Conversation
|
The modification processes hidden files, but it does not preserve the compressed files Hidden attribute in the zip archive. |
mrdrwest
left a comment
There was a problem hiding this comment.
Resubmitted due to build failure.
KirkMunro
left a comment
There was a problem hiding this comment.
Thanks for this PR. It's off to a good start, but I left some comments about whitespace changes that should be undone, and I tried to answer the question you left in a comment.
Also, for this PR to be accepted, additional Pester tests should be added to verify that it works on Windows/macOS/Linux, archiving hidden files and restoring them as hidden.
| $createdItem = New-Item -Path $DestinationPath -ItemType Directory -Confirm:$isConfirm -Verbose:$isVerbose -ErrorAction Stop | ||
| if($createdItem -ne $null -and $createdItem.PSProvider.Name -ne "FileSystem") | ||
| if($null -ne $createdItem -and $createdItem.PSProvider.Name -ne "FileSystem") | ||
| { |
There was a problem hiding this comment.
Thank you for this PR, and for some of the best practice changes. It is very much appreciated.
| $archiveFileStream = New-Object -TypeName System.IO.FileStream -ArgumentList $archiveFileStreamArgs | ||
|
|
||
| $zipArchiveArgs = @($archiveFileStream, [System.IO.Compression.ZipArchiveMode]::Update, $false) |
There was a problem hiding this comment.
It looks like you have additional whitespace changes in the PR that shouldn't be included. Can you please remove them?
| $zipArchive = New-Object -TypeName System.IO.Compression.ZipArchive -ArgumentList $zipArchiveArgs | ||
|
|
||
| $currentEntryCount = 0 |
There was a problem hiding this comment.
Ditto on whitespace changes.
| $relativeFilePath = [System.IO.Path]::GetFileName($currentFilePath) | ||
| } | ||
|
|
||
| # Update mode is selected. |
There was a problem hiding this comment.
Ditto on whitespace changes.
| $srcStream = New-Object System.IO.BinaryReader $currentFileStream | ||
|
|
||
| $entryPath = DirectorySeparatorNormalizeHelper $relativeFilePath |
There was a problem hiding this comment.
Ditto on whitespace changes.
| { | ||
| $destStream.Write($buffer, 0, $numberOfBytesRead) | ||
| $destStream.Write($buffer, 0, $numberOfBytesRead) # can file attributes be specified here | ||
| $destStream.Flush() |
There was a problem hiding this comment.
To address your comment, looking at the docs it seems that each ZipArchiveEntry has an ExternalAttributes property that is OS and application dependent. I would start testing with that property, see what is captured in it when an archive is created, and what can be restored when an archive is extracted.
|
/azp run PowerShell.Microsoft.PowerShell.Archive |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Modified script to process hidden files. Added -Force switch to the (only) Get-ChildItem cmdlet and the Get-Item cmdlet with the LastWriteTime member property.