首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Compression.ZipFile抛出ArgumentException“这条路不是法律形式”

Compression.ZipFile抛出ArgumentException“这条路不是法律形式”
EN

Stack Overflow用户
提问于 2014-01-06 11:34:11
回答 1查看 5.6K关注 0票数 13

我正在尝试使用Powershell v3和.NET 4.5来更改文件夹中的文件中的字符串,然后压缩文件夹的内容。我已经让字符串替换正常工作了,但是zip继续在目录路径上抛出一个ArgumentException,尽管我确信它是正确的。

代码语言:javascript
运行
复制
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上的文章:

http://msdn.microsoft.com/en-us/library/hh485721(v=vs.110).aspx

我想要的密码是:

代码语言:javascript
运行
复制
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:\Users\Administrator\Desktop\public-build“更改为:"C:\Users\Administrator\Desktop\public-build\”

“C:\User\Administrator\Desktop\public-build”

"C:\Users\Administrator\Desktop\public-build\“

“公共建筑”

“公共建筑”

“\\公共建筑”

“\\公共建筑\”

都抛出同样的错误。我也尝试了一个只是“公共构建”的折叠式名称,以防它是连字符,但仍然得到同样的错误。

我很困惑。我想要做的就是拉上文件夹。希望有人会指出我正在犯的一些明显的错误,但除此之外,我也欢迎任何替代的方法。我不喜欢安装第三方工具,但如果没有其他解决方案,我可能不得不使用它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-06 11:49:30

我认为问题在于调用函数时提供参数的方式。在Powershell参数作为空格分隔的值提供时,它不使用()语法。

代码语言:javascript
运行
复制
ZipFiles "public-build.zip" "C:\Users\Administrator\Desktop\public-build"
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20949165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档