public static StorageRoot CreateStorage(Stream stream, Uri streamUri = null, string streamName = null, StorageOptions storageOptions = null) { var provider = new ZipStorgeProvider(stream, streamUri, streamName); var ret = new StorageRoot(provider, storageOptions); return(ret); }
public static StorageRoot CreateStorage(string zipPath, StorageOptions storageOptions = null) { var provider = new ZipStorgeProvider(zipPath); var ret = new StorageRoot(provider, storageOptions); return(ret); }
public IStorageProvider OpenStorage(Uri uri) { if (uri == null) { throw new ArgumentNullException(nameof(uri)); } lock (_zipArchive) { var path = PathFromUri(uri); var exists = _zipArchive.Entries.Any(x => GetEntryFolderName(x.FullName).IndexOf(path, StringComparison.OrdinalIgnoreCase) == 0); if (!exists) { throw new StorageNotFoundException(uri); } var ret = new ZipStorgeProvider(this, path); return(ret); } }
private ZipStorgeProvider(ZipStorgeProvider parent, string path) { _path = path; _zipArchive = parent._zipArchive; }