Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
 private OpcPackage(ZipArchive archive, OpcPackageFileMode mode)
 {
     _disposed    = false;
     Archive      = archive;
     _mode        = mode;
     _partTracker = new Dictionary <string, OpcPart>();
 }
Exemplo n.º 3
0
 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));
        }
Exemplo n.º 5
0
        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));
            }
        }