Hello,
Has there been any headway made with this issue? I'm seeing similar behavior.
Here is the offending code:
StreamFile sfDocument = new StreamFile(m_msDocument);
ZipArchive zaDocument = new ZipArchive(sfDocument);
AbstractFolder afolder = zaDocument.GetFolder(ZIP_FOLDER);
AbstractFile afile = afolder.GetFile(ZIP_FILE);
Stream ms= afile.OpenWrite(true);
origDocument.Save(ms);
ms.Close();
I also saw the link that Bill posted and changed the code to use AutoBatchUpdate, however I'm getting all sorts of errors (the linked thread only mentions one) so I thought I would research a little more and found this thread. Here are some errors I've seen (we had another one but didn't capture it, something about denied Access):
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'ZipHandler'.
at Xceed.Zip.ZipHandler.CheckIfDisposed()
at Xceed.Zip.ZipItemHandler.OpenRawRead(FileSystemEventsSession session)
at Xceed.Zip.ZipItemHandler.MoveFromZipToTemp(FileSystemEventsSession session)
at Xceed.Zip.ZipHandler.MoveFilesToKeep(FileSystemEventsSession session)
at Xceed.Zip.ZipHandler.Flush(FileSystemEventsSession session)
at Xceed.Zip.ZipHandler.Release(FileSystemEventsSession session)
at Xceed.Zip.ZipHandler.ReleaseModify(FileSystemEventsSession session)
at Xceed.Zip.ZipItemHandler.OnClosingWritingStreamEvent(Object sender, NotifyStreamArgs args)
at Xceed.Utils.Streams.NotifyStream.OnClosingStream()
at Xceed.Utils.Streams.NotifyStream.Dispose(Boolean disposing)
at System.IO.Stream.Close()
Xceed.FileSystem.FileSystemInternalException: Missing ZipHandler in main table.
at Xceed.Zip.ZipHandler.UpdateZipHandlerKey(ZipHandler handler, AbstractFile oldZipFile, AbstractFile newZipFile)
at Xceed.Zip.ZipHandler.Flush(FileSystemEventsSession session)
at Xceed.Zip.ZipHandler.Release(FileSystemEventsSession session)
at Xceed.Zip.ZipHandler.ReleaseModify(FileSystemEventsSession session)
at Xceed.Zip.ZipItemHandler.OnClosingWritingStreamEvent(Object sender, NotifyStreamArgs args)
at Xceed.Utils.Streams.NotifyStream.OnClosingStream()
at Xceed.Utils.Streams.NotifyStream.Dispose(Boolean disposing)
at System.IO.Stream.Close()
Xceed.FileSystem.ItemDoesNotExistException: Cannot perform the requested operation on an item that does not exist.
Type: Xceed.FileSystem.DiskFile
FullName: C:\Documents and Settings\user\Local Settings\Temp\59a29cfe-7899-45f1-98b8-0e268055a7c2.tmp
at Xceed.FileSystem.AbstractFile.OpenRead(FileSystemEvents events, Object userData, FileShare share)
at Xceed.FileSystem.AbstractFile.OpenRead()
at Xceed.Zip.ZipItemHandler.OpenRawRead(FileSystemEventsSession session)
at Xceed.Zip.ZipItemHandler.WriteData(FileSystemEventsSession session, Stream stream)
at Xceed.Zip.ZipItemHandler.WriteLocalHeader(FileSystemEventsSession session, ZipStream stream)
at Xceed.Zip.ZipHandler.WriteLocalHeaders(FileSystemEventsSession session, BinaryWriter writer)
at Xceed.Zip.ZipHandler.WriteZipToStream(FileSystemEventsSession session, BinaryWriter writer)
at Xceed.Zip.ZipHandler.Flush(FileSystemEventsSession session)
at Xceed.Zip.ZipHandler.Release(FileSystemEventsSession session)
at Xceed.Zip.ZipHandler.ReleaseModify(FileSystemEventsSession session)
at Xceed.Zip.ZipItemHandler.OnClosingWritingStreamEvent(Object sender, NotifyStreamArgs args)
at Xceed.Utils.Streams.NotifyStream.OnClosingStream()
at Xceed.Utils.Streams.NotifyStream.Dispose(Boolean disposing)
at System.IO.Stream.Close()