压缩 (zip) 无法创建输出文件 - 错误

2023-12-25

我正在使用 VBscript 扫描文件夹、创建 zip 文件并向其中添加文件(压缩),但是当我在包含大量文件的文件夹上运行脚本时,出现以下错误:“压缩 (zip) 无法创建输出文件”

我的邮政编码处理代码如下:

Dim objFSO
Set objFSO= CreateObject("Scripting.FileSystemObject"

Function PreformZip(objFile,target,zip_name, number_of_file)

  Set shell = CreateObject("WScript.Shell")  
  zip_target = target + "\" + zip_name +".zip" 
  If Not objFSO.FileExists(zip_target) Then
    MakePathIfNotExist(target) 
    NewZip(zip_target)
  Else
    If number_of_file=0 Then
        objFSO.DeleteFile(zip_target)
        NewZip(zip_target)
    End if
  End If

  Set zipApp = CreateObject("Shell.Application")
  aSourceName = Split(objFile, "\")
  sSourceName = (aSourceName(Ubound(aSourceName)))
  zip_file_count = zipApp.NameSpace(zip_target).items.Count
  zipApp.NameSpace(zip_target).Copyhere objFile, 16
  On Error Resume Next
  sLoop = 0
  Do Until zip_file_count < zipApp.NameSpace(zip_target).Items.Count
    Wscript.Sleep(100)
    sLoop = sLoop + 1
  Loop
  On Error GoTo 0
End Function

Sub NewZip(zip)
  Set new_zip = objFSO.CreateTextFile(zip)
  new_zip.Write Chr(80) & Chr(75) & Chr(5) & Chr(6) & String(18, 0)  
  new_zip.Close
  Set new_zip = Nothing 
  WScript.Sleep(5000)
End Sub

Function MakePathIfNotExist(DirPath)
Dim FSO, aDirectories, sCreateDirectory, iDirectory

Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists(DirPath) Then
  Exit Function
End If

aDirectories = Split(DirPath, "\")
sCreateDirectory = aDirectories(0)
For iDirectory = 1 To UBound(aDirectories)
  sCreateDirectory = sCreateDirectory & "\" & aDirectories(iDirectory)
  If Not FSO.FolderExists(sCreateDirectory) Then
  FSO.CreateFolder(sCreateDirectory)
  End If
Next
End Function

Function Recursion(DirectoryPath)
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")

If FSO.FolderExists(DirectoryPath) Then Exit Function
Call Recursion(FSO.GetParentFolderName(DirectoryPath))
FSO.CreateFolder(DirectoryPath)
End Function

我首先以为创建 zip 后等待的时间不够长,但我什至尝试在每个 zip 后等待 10 秒,但仍然遇到相同的错误。

我该如何解决?

如果没有解决方案,是否有其他方法来制作拉链?该脚本不仅供我自己使用,所以我不想在需要安装的软件上进行中继?


虽然Folder.CopyHere方法不返回值,并且不会向调用程序发出任何通知来指示复制已完成,您可以等待下一个代码片段,我希望您可以在脚本中看到正确的(重新)放置:

On Error GoTo 0
zipApp.NameSpace(zip_target).Copyhere objFile _
      , 4 +8 +16 +256 +512 +1024
Wscript.Sleep( 100)
On Error GoTo 0

注意:无需等待Do..Loop, this Wscript.Sleep( 100)足以压缩小文件或在大文件的情况下启动进度对话框 - 并且您的脚本将等待它......

注意:无'On Error Resume Next。避免调用On Error Resume Next如果你不处理错误...

使用的标志如下。

Const FOF_SILENT            = &h0004 'ineffective?
Const FOF_RENAMEONCOLLISION = &h0008 'ineffective?
Const FOF_NOCONFIRMATION    = &h0010 '
Const FOF_SIMPLEPROGRESS    = &h0100 'ineffective?
Const FOF_NOCONFIRMMKDIR    = &h0200 '
Const FOF_NOERRORUI         = &h0400 '

不幸的是,在某些情况下,例如压缩(.zip) 文件,某些选项标志可能会被设计忽略(原文如此!)由 MSDN 提供 http://msdn.microsoft.com/en-us/library/windows/desktop/bb787866(v=vs.85).aspx!

If FOF_SILENT标记无效,然后用户可以Cancel压缩过程...

If FOF_RENAMEONCOLLISION标志无效,则不会压缩较新的同名文件,现有的 zip 文件保留以前的版本,无需注意;只有现有文件夹才会出现额外的错误消息...

这些也可以解决,但这是另一个问题的主题......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

压缩 (zip) 无法创建输出文件 - 错误 的相关文章

  • ZipArchive 提取 - 单个文件

    我有以下代码 ipaFile path file ipa iconFilePath Payload myapp app email protected cdn cgi l email protection the pathway to my
  • 在 VBScript 中,如何使用 mid 获取字符串并在“;”处分割字符串

    所以我对 VBScript 比较陌生 并且正在努力获取字符串并删除 拆分它 我目前有 id mid storeline id instr id storeline 1 我本质上想删除 之后的任何代码 例如 ID 12049302 Heigh
  • 在 azure blob 存储中就地创建 zip 文件

    我将文件存储在 Blob 存储帐户内的一个容器中 我需要在第二个容器中创建一个 zip 文件 其中包含第一个容器中的文件 我有一个使用辅助角色和 DotNetZip 工作的解决方案 但由于 zip 文件的大小最终可能达到 1GB 我担心在进
  • 使用 cscript.exe 而不是 wscript.exe 在 VBScript 中执行文件

    我知道如何使用 wscript exe 执行 exe 如下所示 Set WshShell WScript CreateObject WScript Shell WshShell Run c myprogram exe 但我被迫使用 cscr
  • 估计 zip 大小/创建时间

    我需要使用 Python zipfile 模块或 unix 命令行实用程序按需创建 ZIP 存档 要压缩的资源通常 gt 1GB 并且不一定适合压缩 如何有效地估计其创建时间 大小 从大文件中提取一堆小部分 也许 64 个块 每个块 64k
  • 如何在 R 中压缩多个 CSV 文件?

    我正在尝试在 R 中压缩多个 CSV 文件 下面是供参考的代码 Create two dataframes using inbuilt datasets for reproducible code df1 lt head mtcars df
  • ZipResourceFile 无法解析为类型

    我正在尝试重写我的应用程序以使用 APK 扩展文件 我一直在关注这里的文档http developer android com google play expansion files html http developer android
  • 使用 python-3.x 从 zip 存档中读取 CSV 文件

    我有一个压缩档案 其中包含几个csv files 例如 假设myarchive zip包含myfile1 csv myfile2 csv myfile3 csv In python 2 7我能够迭代加载所有myfiles in pandas
  • Bash 脚本跳过提取受密码保护的档案

    我有一个脚本 它使用命令对某些文件夹中的特定 zip 和 或 tar gz 存档进行批量提取 unzip o zip path d destination folder 不幸的是 当存档受密码保护时 脚本会停止并等待密码输入 有没有办法省略
  • Google Chrome 总是说“Google Chrome 没有正确关闭”[重复]

    这个问题在这里已经有答案了 我在 VBS 文件脚本中使用此代码自动关闭 Chrome 浏览器 Set objExec browobj Exec tasklist fi Chr 34 imagename eq chrome exe Chr 3
  • GetRef 来捕获方法?

    我刚刚发现了 VBScript 的 GetRef 函数 它获取对其参数命名的函数的引用 有没有办法以这种方式获取对方法的引用 我有一种预感 VBScript 不提供这样做所需的复杂绑定 但它肯定会很好 No GetRef不支持类方法
  • Node.js 中的 JSON Zip 响应

    我对 node js 还很陌生 我正在尝试发回包含 JSON 结果的 zip 文件 我一直在尝试弄清楚如何去做 但还没有达到预期的结果 我正在使用 NodeJS ExpressJS LocomotiveJS Mongoose 和 Mongo
  • 我应该如何提取java中的压缩文件夹?

    我正在使用以下代码在 Java 中提取 zip 文件 import java io import java util zip class testZipFiles public static void main String args tr
  • VB脚本删除特定子文件夹

    我需要 VBScript 命令提示符来删除具有特定名称的子文件夹 For Eg E 测试 43 5512686 5512698 html abc E 测试 43 5467686 5512699 html abc E 测试 43 558768
  • 在 Clojure 中处理两个序列中的值对

    我正在尝试加入 Clojure 社区 我经常使用 Python 我广泛使用的功能之一是 zip 方法 用于迭代值对 在 Clojure 中是否有一种 聪明且简短的 方法可以实现相同的目标 另一种方法是简单地将 map 与一些按顺序收集其参数
  • VBScript 错误 5 尝试使用“System.Security.Cryptography.SHA512Managed”计算 sha512

    我正在尝试用 VBScript 编写一段代码来计算 给定文件的 SHA512 值 根据 MSFT 文档 SHA512Managed 对象的 ComputeHash 方法需要 字节数组作为输入 所以我使用ADODB读取输入文件 要计算 SHA
  • powershell 将文件添加到 zip

    我正在尝试使用 powershell 将文件添加到 zip 文件 我可以创建 zip 文件 但无法弄清楚如何将我的文件添加到其中 我在用着 zipfilename c cwRsync backup zip file c cwRsync ba
  • 如何将压缩文件导入 Postgres 表

    我想将一个文件重要到我的 Postgresql 系统 特别是 RedShift 中 我发现了一个允许导入 gzip 文件的副本的争论 但我尝试包含在系统中的数据提供者仅生成 zip 格式的数据 有内置的 postgres 命令用于打开 zi
  • FileSystemObject 中文件集合的顺序

    在 VBScript 中 我想获取按创建日期排序的文件夹中的文件列表 我发现为了做到这一点 我需要使用记录集 对我来说似乎有点过分 或自己对集合进行排序 我认为我可以避免它 并且我希望我的代码更短 由于我是创建文件的人 所以我使用以日期 y
  • C# 创建包含多个文件的 ZIP 存档

    我正在尝试创建包含多个文本文件的 ZIP 存档 如下所示 Dictionary

随机推荐

  • 使用 AWS CodeBuild 进行 docker 推送失败,退出状态为 1

    我创建了由 CodePipeline 触发的 CodeBuild 项目 并且 docker Push 步骤始终失败 并显示 原因 退出状态 1 错误消息 以下是我的构建日志 将我的组织 ID 替换为 Container 2021 06 12
  • 如何从 GMSMapView 中删除 GMSPolygon

    是否有任何方法可以从 GMSMapView 中删除 GMSPolygons 它似乎不存在包含它们的 GMSMapView 属性 如 GMSPlolyLines 我应该清除地图并再次渲染吗 thanks 当您创建GMSPolygon你设置它的
  • 如何知道窗口是否被“x”按钮关闭?

    有谁知道如何找出wpf窗口是否被 x 按钮关闭 最简单的方法 在我看来 是存储一个布尔值 指示用户是否通过其他方法关闭了表单 然后在 OnClosing 事件中 检查布尔值是否为 false 表示单击了 x 按钮 唯一的问题是您自己设置了布
  • Rails 和 Socket.io (node.js)

    我打算使用 Rails 应用程序来提供由 node js 服务器和 Socket io 处理的实时数据 在 Socket io 网站上 它说 如果您不会利用 Node JS 来提供服务 您的文件 请确保设置 全球的WEB SOCKET SW
  • 从 gradle 扩展访问配置闭包

    我正在编写一个插件 其中执行如下操作 project extensions create myExtension new MyExtension project where MyExtension是定义我的新功能的类 Now in grad
  • 在 RDF 中对数据库 NULL 的等价物进行建模

    我想知道是否有一种标准或普遍接受的方法来表示 RDF 数据数据库中使用的 NULL 的等效项 更具体地说 我对区分以下情况的值感兴趣o财产的p p是谓词 oRDF 三元组的对象 其值为不适用 即财产p不存在或在上下文中没有意义 其值为unk
  • 在 C 中读取 .csv 文件

    我有一个 csv 文件 lp imie nazwisko ulica numer kod miejscowosc telefon email data ur 1 Jan Kowalski ul Nowa 1a 11 234 Budry 12
  • 内存屏障的传递性/累积性属性是如何在微架构上实现的?

    我一直在阅读有关 x86 内存模型的工作原理 x86 上屏障指令的重要性以及与其他架构 例如 ARMv8 的比较 在 x86 和 ARMv8 架构中 似乎 没有双关语 内存模型尊重传递性 累积性 即如果 CPU 1 看到 CPU0 的存储
  • 使用 llvm 后端编译 haskell .ll 文件时出错

    我想使用 ghc 前端和 llvm 后端编译 haskell 我的 haskell hello hs 文件中有以下代码 main putStrLn Hello World 我使用以下命令用 ghc 编译 hello hs ghc fllvm
  • 长轮询,“全局”按钮,向所有人广播?

    我正在尝试实现一个全局按钮计数器 该计数器会在任何 不同用户单击它时更新 因此 我们的想法是 如果一个人单击该按钮 我会在页面实例上看到计数器更新 我目前的长轮询技术正在工作 或者我认为是这样 但经过审查 我相信我在向所有浏览器 广播 更新
  • 使用 Neo4j 批量插入

    我正在从表中导入 23 亿个关系 导入速度不是很快 每小时 500 万个 需要 20 天才能完成迁移 我听说过 neo4j 批量插入和批量插入实用程序 https github com jexp batch import 该实用程序通过从
  • 如何根据 powershell 中对象的两个属性来选择唯一的对象?

    我有一个具有 6 个属性的对象数组 看起来像这样 csvData CURRENT DATE AND TIME 07 10 2015 08 17 17 CST USER NAME userName COMPUTER NAME computer
  • 使用反射获取 linq 查询中的选择字段

    我正在使用 Linq 进行查询 并且希望能够使用反射在 选择 部分中获取我想要返回的属性列表 我已尝试以下方法但无济于事 string paramList new AppId Name var query from entity in ct
  • 自定义表格视图背景的 UITableViewCell 颜色问题

    我有一个 UITableView 其自定义背景图像设置如下 self tableView backgroundColor UIColor colorWithPatternImage UIImage imageNamed mybg png 背
  • DataInputStream/DataOutputStream类与InputStream/OutputStream类之间的区别

    每当我使用HttpConnection班级于Java ME Android or in BlackBerry 我用DataInputStream DataOutputStream用于通过远程服务器读取和写入数据的类 然而还有其他类 例如In
  • Get-EventLog - 轻松按“今天”过滤?

    我想快速检查今天发生的事件 即 从午夜开始的任何事件 Powershell 中是否有 今天 别名 内置功能可以帮助解决此问题 我目前正在做这样的事情 get eventlog system source disk after datetim
  • 拒绝类,因为它未通过编译时验证

    我正在尝试将来自 openwhispersystems 的 curve25519 java 集成到我的 Android 应用程序中 并使用 API 23 Marshmallow 进行编译 使用非本机代码时 我收到此运行时异常 java la
  • 我应该更改什么才能使该文件编译?

    我正在上编程课 这个程序是我作业的一部分 该文件分析名为 Names txt 的文件中的数据 然后打印信息 我收到编译错误 我想知道需要更改或添加哪些内容才能成功编译 这是我的代码 import java util Scanner impo
  • 更改 ImageView 内容会导致 OutOfMemoryError

    我有一个非常简单的应用程序 包含一个 ImageView 和一个 Button 我加载的第一个 Drawable 资源图像视图在 XML 布局中用 android src 标签指定 但是在运行时我想改变它显示的图片 为此 我启动一个活动以从
  • 压缩 (zip) 无法创建输出文件 - 错误

    我正在使用 VBscript 扫描文件夹 创建 zip 文件并向其中添加文件 压缩 但是当我在包含大量文件的文件夹上运行脚本时 出现以下错误 压缩 zip 无法创建输出文件 我的邮政编码处理代码如下 Dim objFSO Set objFS