コード例 #1
0
 public SeamlessArchiveFileSystem(IFileSystem fileSystem)
 {
     FileSystem = fileSystem;
     _rootUsage = new FileSystemUsage
     {
         Owner = this,
         FileSystem = FileSystem,
         ArchiveFile = null
     };
 }
コード例 #2
0
 public SeamlessArchiveFileSystem(IFileSystem fileSystem)
 {
     FileSystem = fileSystem;
     _rootUsage = new FileSystemUsage
     {
         Owner       = this,
         FileSystem  = FileSystem,
         ArchiveFile = null
     };
 }
コード例 #3
0
        private FileSystemEntity GetActualLocation(FileSystemPath path)
        {
            FileSystemPath archivePath;

            if (!TryGetArchivePath(path, out archivePath))
            {
                return(FileSystemEntity.Create(FileSystem, path));
            }
            var             archiveFile = (File)GetActualLocation(archivePath);
            FileSystemUsage usage       = GetArchiveFs(archiveFile);

            return(FileSystemEntity.Create(usage.FileSystem, GetRelativePath(path)));
        }
コード例 #4
0
        FileSystemUsage GetArchiveFs(File archiveFile)
        {
            if (_usedArchives.TryGetValue(archiveFile, out var usage))
            {
                return(usage);
            }

            var archiveFs = CreateArchiveFileSystem(archiveFile);

            usage = new FileSystemUsage
            {
                Owner       = this,
                FileSystem  = archiveFs,
                ArchiveFile = archiveFile
            };
            _usedArchives[archiveFile] = usage;
            //System.Diagnostics.Debug.WriteLine("Open archives: " + _usedArchives.Count);
            return(usage);
        }
コード例 #5
0
 public FileSystemReference(FileSystemUsage usage)
 {
     Usage = usage;
 }
コード例 #6
0
        private FileSystemUsage GetArchiveFs(File archiveFile)
        {
            FileSystemUsage usage;
            if (_usedArchives.TryGetValue(archiveFile, out usage))
            {
                //System.Diagnostics.Debug.WriteLine("Open archives: " + _usedArchives.Count);
                return usage;
            }

            var archiveFs = CreateArchiveFileSystem(archiveFile);
            usage = new FileSystemUsage
            {
                Owner = this,
                FileSystem = archiveFs,
                ArchiveFile = archiveFile
            };
            _usedArchives[archiveFile] = usage;
            //System.Diagnostics.Debug.WriteLine("Open archives: " + _usedArchives.Count);
            return usage;
        }
コード例 #7
0
 public FileSystemReference(FileSystemUsage usage)
 {
     Usage = usage;
 }