/// <summary> /// Constructs a new <c>ZipFileSystem</c> /// </summary> /// <param name="rootAddress">The root address of the zip file system.</param> /// <param name="zipFile">The zip file that hosts the file system.</param> /// <param name="options">Options for the file system.</param> public ZipFileSystem(INodeAddress rootAddress, IFile zipFile, FileSystemOptions options) : base(rootAddress, GetZipFile(zipFile), options) { this.changeDeterminer = new AttributeChangeDeterminer(ParentLayer, "LastWriteTime", "Length"); this.OpenZlib(); this.RefreshNodeInfos(); if (zipFile.SupportsActivityEvents && options.ReadOnly) { zipFile.Activity += new NodeActivityEventHandler(ZipFile_Activity); } }