我試圖使用Powershell v3和.NET 4.5來更改文件夾中的文件中的字符串,然後壓縮該文件夾的內容。我得到了字符串替換工作,但是然後zip繼續在目錄路徑上拋出一個ArgumentException,儘管我確信它是正確的。Compression.ZipFile拋出ArgumentException「該路徑不是合法形式」
Exception calling "CreateFromDirectory" with "4" argument(s): "The path is not of a legal form."
At line:5 char:4
+ [System.IO.Compression.ZipFile]::CreateFromDirectory($sourcedir,
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ArgumentException
上ZipFile.CreateFromDirectory
Microsoft文章:
http://msdn.microsoft.com/en-us/library/hh485721(v=vs.110).aspx
我試圖代碼:
function ZipFiles($zipfilename, $sourcedir)
{
[Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem")
$compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal
[System.IO.Compression.ZipFile]::CreateFromDirectory($sourcedir,
$zipfilename, $compressionLevel, $false)
}
Get-Content public-build\index.html | ForEach-Object { $_ -replace "data-default-api=`"dev`"", "data-default-api=`"test`"" } | Set-Content public-build\index2.html
cp public-build\index2.html public-build\index.html
rm public-build\index2.html
ZipFiles("public-build.zip", "C:\Users\Administrator\Desktop\public-build")
我試圖改變「C:\用戶\管理員\桌面\公-build「到: 」C:\ Users \ Administrator \ Desktop \ public-build「
」C:\\ Users \\ Administrator \\ Desktop \\ public-build「
「C:\\ \\用戶\\管理員桌面\\公共建設\\」 「\公建」
「公建」
「公共建設\」
」。 \ public-build \「
所有拋出相同的錯誤。我也嘗試過一個只是「publicbuild」的文件夾名稱,以防連字符,但仍然有相同的錯誤。
我很難過。我想要做的就是壓縮文件夾。希望有人會指出我正在犯的一些明顯的錯誤,但除此之外,我也歡迎任何替代方法。我不想安裝第三方工具,但如果沒有其他解決方案,可能不得不求助於它。
是的!這工作。非常感謝!很高興這很簡單。 –
這對我來說也是一個很棒的時刻!謝謝! –
我其實只是做了同樣的問題,調用完全相同的功能,瘋了吧! –