public async Task Load(IFileSystem fileSystem, UPath filePath, ITemporaryStreamProvider temporaryStreamProvider, IProgressContext progress) { var fileStream = await fileSystem.OpenFileAsync(filePath); Files = _pack.Load(fileStream); }
/// <summary> /// Creates a new instance of <see cref="LoadContext"/>. /// </summary> /// <param name="temporaryStreamProvider">The provider for temporary streams.</param> /// <param name="progress">The progress for this action.</param> /// <param name="dialogManager">The dialog manager for this action.</param> public LoadContext(ITemporaryStreamProvider temporaryStreamProvider, IProgressContext progress, IDialogManager dialogManager) { ContractAssertions.IsNotNull(temporaryStreamProvider, nameof(temporaryStreamProvider)); ContractAssertions.IsNotNull(progress, nameof(progress)); ContractAssertions.IsNotNull(dialogManager, nameof(dialogManager)); TemporaryStreamManager = temporaryStreamProvider; ProgressContext = progress; DialogManager = dialogManager; }
public async void Load(IFileSystem fileSystem, UPath filePath, ITemporaryStreamProvider temporaryStreamProvider) { _files = new List <ArchiveFileInfo>(); var inputFile = await fileSystem.OpenFileAsync(filePath); using var indexBr = new BinaryReaderX(await fileSystem.OpenFileAsync("index.bin")); indexBr.BaseStream.Position = 4; var fileCount = indexBr.ReadInt32(); for (var i = 0; i < fileCount; i++) { var fileName = i == 0 ? "archive.test" : "index.bin"; _files.Add(new ArchiveFileInfo(new SubStream(inputFile, indexBr.ReadInt32(), indexBr.ReadInt32()), fileName)); } }
/// <summary> /// Creates a new instance of <see cref="IdentifyContext"/>. /// </summary> /// <param name="temporaryStreamProvider">The provider for temporary streams.</param> public IdentifyContext(ITemporaryStreamProvider temporaryStreamProvider) { ContractAssertions.IsNotNull(temporaryStreamProvider, nameof(temporaryStreamProvider)); TemporaryStreamManager = temporaryStreamProvider; }
public async Task <bool> IdentifyAsync(IFileSystem fileSystem, UPath filePath, ITemporaryStreamProvider temporaryStreamProvider) { // Do files exist if (!fileSystem.FileExists(filePath) || !fileSystem.FileExists("index.bin")) { return(false); } // Open files var archiveFile = await fileSystem.OpenFileAsync(filePath); var indexFile = await fileSystem.OpenFileAsync("index.bin"); // Identify file return(CheckTestRequirements(archiveFile, indexFile)); }
public override Task <Stream> GetFileData(ITemporaryStreamProvider temporaryStreamProvider = null, IProgressContext progress = null) { return(Task.FromResult(ContentChanged ? FileData : _chunkStream)); }
public async Task <bool> IdentifyAsync(IFileSystem fileSystem, UPath filePath, ITemporaryStreamProvider temporaryStreamProvider) { var fileStream = await fileSystem.OpenFileAsync(filePath); using var br = new BinaryReaderX(fileStream); return(br.ReadString(4) == "P@CK"); }