/// <summary> /// Opens an OPC package. /// </summary> /// <param name="path">The path to the OPC package.</param> /// <param name="mode">The mode of the OPC package. Read allows the package to be inspected, but not changed.</param> /// <returns>An instance of an <see cref="OpcPackage"/>.</returns> public static OpcPackage Open(string path, OpcPackageFileMode mode = OpcPackageFileMode.Read) { var zipMode = GetZipModeFromOpcPackageMode(mode); var zip = ZipFile.Open(path, zipMode); return(new OpcPackage(zip, mode)); }
private OpcPackage(ZipArchive archive, OpcPackageFileMode mode) { _disposed = false; Archive = archive; _mode = mode; _partTracker = new Dictionary <string, OpcPart>(); }
internal OpcPart(OpcPackage package, string path, ZipArchiveEntry entry, OpcPackageFileMode mode) { Uri = new Uri(OpcPackage.BasePackageUri, path); _package = package; _path = path; _entry = entry; _mode = mode; }
private OpcPackage ShadowCopyPackage(string packagePath, out string path, OpcPackageFileMode mode = OpcPackageFileMode.Read) { var temp = Path.GetTempFileName(); _shadowFiles.Add(temp); File.Copy(packagePath, temp, true); path = temp; return(OpcPackage.Open(temp, mode)); }
private static ZipArchiveMode GetZipModeFromOpcPackageMode(OpcPackageFileMode mode) { switch (mode) { case OpcPackageFileMode.Read: return(ZipArchiveMode.Read); case OpcPackageFileMode.ReadWrite: return(ZipArchiveMode.Update); default: throw new ArgumentException($"Specified {nameof(OpcPackageFileMode)} is invalid.", nameof(mode)); } }