老师您好,ZipFile有没有返回值,如何判断文件压缩已经压缩结束?
在写一个打包程序,需要将多个文件夹的文件按原来的目录结构放到zip文件中。写了一个内部函数,一次处理一个文件夹
形式代码如下:
Dim
zip
As New zipFile
zip.create or zip.open ...
for each fl as string in folder
zip.addfile(fl, '路径/fl文件名')
next
zip.close()
当需压缩多个文件夹时,需多次调用上述内部函数,如果前一个文件特别多时,会出现“流不支持写入”的报错。如果忽略,报错的文件夹没有把所有的文件压缩进去。
可能的原因是 zip.close 并不是zip已经结束,当下次再用 Dim zip As New zipFile 该压缩文件的时候,它将终止前面正在进行的压缩,从而报"流不支持写入"的错误。
有没有什么解决方法?
调用的目标发生了异常。
在 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
在 Foxtable.UserFunctions.Execute(String Name, Object[] Args)
流不支持写入。
在 System.IO.FileStream.SetLength(Int64 value)
在 C1.C1Zip.d.a()
在 C1.C1Zip.d.c()
在 System.IO.Stream.Dispose()
在 C1.C1Zip.C1ZipFile.a(Stream A_0, String A_1, DateTime A_2)
在 C1.C1Zip.C1ZipFile.a(String A_0, String A_1, DateTime A_2)
在 C1.C1Zip.C1ZipEntryCollection.Add(String fileName, String entryName, DateTime dateTime)
在 C1.C1Zip.C1ZipEntryCollection.Add(String fileName, String entryName)
在 Foxtable.ZipFile.AddFile(String Filename, String NewFileName)
在 UserCode.AUo3pUozjTu0u80v5(Object[] Args)