internal OpenArchiveInfo(IntPtr ptr) { this.ptr = ptr; if (ptr != IntPtr.Zero) { data = (OpenArchiveData)Marshal.PtrToStructure(ptr, typeof(OpenArchiveData)); } }
public override object OpenArchive(ref OpenArchiveData archiveData) { FileStream archive = File.Open(archiveData.ArchiveName, FileMode.Open); ZipFile zf = new ZipFile(archive); archiveData.Result = PackerResult.OK; return(zf); }
public static IntPtr OpenArchiveInternal(OpenArchiveData data) { IntPtr result = IntPtr.Zero; callSignature = String.Format("OpenArchive {0} ({1})", data.ArchiveName, data.Mode.ToString()); try { object o = Plugin.OpenArchive(ref data); if (o != null && data.Result == PackerResult.OK) { result = TcHandles.AddHandle(o); data.Update(); } TraceCall(TraceLevel.Info, (result == IntPtr.Zero) ? String.Format("Error ({0})", data.Result.ToString()) : result.ToString()); } catch (Exception ex) { ProcessException(ex); result = IntPtr.Zero; } return(result); }
public override object OpenArchive(ref OpenArchiveData archiveData) { object result; archiveFile = archiveData.ArchiveName; string extension = Path.GetExtension(archiveFile); if (extension != null) { string arcExt = extension.ToUpper(); if (!ExtensionsToOpen.Contains(arcExt)) { return(PackerResult.UnknownFormat); } } files.Clear(); using (StreamReader sr = new StreamReader(archiveFile)) { while (!sr.EndOfStream) { string line = sr.ReadLine(); if (line != null) { int pos = line.IndexOf(" *", StringComparison.Ordinal); if (pos > 0) { string[] node = new[] { line.Substring(pos + 2), line.Substring(0, pos), "false" }; files.Add(node); } } } } archiveData.Result = PackerResult.OK; result = files.GetEnumerator(); return(result); }
public static IntPtr OpenArchiveInternal(OpenArchiveData data) { var result = IntPtr.Zero; _callSignature = $"OpenArchive {data.ArchiveName} ({data.Mode.ToString()})"; try { object o = Plugin.OpenArchive(ref data); if (o != null && data.Result == PackerResult.OK) { result = TcHandles.AddHandle(o); data.Update(); } TraceCall(TraceLevel.Info, result == IntPtr.Zero ? $"Error ({data.Result.ToString()})" : result.ToString()); } catch (Exception ex) { ProcessException(ex); result = IntPtr.Zero; } return(result); }
public static IntPtr OpenArchiveW(IntPtr archiveData) { OpenArchiveData data = new OpenArchiveData(archiveData, true); return(OpenArchiveInternal(data)); }
public static IntPtr OpenArchive(IntPtr archiveData) { var data = new OpenArchiveData(archiveData, false); return(OpenArchiveInternal(data)); }