Powershell v3および.NET 4.5を使用して、フォルダ内のファイル内の文字列を変更し、フォルダの内容を圧縮しようとしています。私は文字列の置換作業を持っているが、正しいと確信しているにもかかわらず、zipはディレクトリパスにArgumentExceptionをスローし続けます。Compression.ZipFile throw 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:\ユーザーは\管理者\デスクトップ\公開"ビルド"を "C:¥Users¥Administrator¥Desktop¥public-build¥"
"C:¥¥Users¥¥Administrator¥¥Desktop¥¥public-build"
"C:\\ユーザー\\管理者\\デスクトップ\\公開ビルド\\" "\パブリック・ビルド"
"パブリック・ビルド"
"パブリック・ビルド\"
」。 \ public-build \ "
すべて同じエラーをスローします。また、ハイフンの場合には "publicbuild"というフォルダ名で試してみましたが、同じエラーが出ました。
私はかなり困惑しています。私がしたいのは、フォルダをジップアップすることだけです。うまくいけば、私が作っている明らかな間違いを誰かが指摘してくれるだろうが、それ以外の場合は、私はまた別のアプローチを歓迎する。サードパーティのツールをインストールしたくないのですが、他に解決策がない場合は、それに頼らなければならないかもしれません。
はい!これは機能します。どうもありがとう!うれしいことは何か簡単だった。 –
これは私にとって大きな瞬間でした!ありがとう! –
私は実際にはまったく同じ機能を呼び出すこの同じ問題をしました、クレイジーハァッ! –