private void ReloadImages() { _images = SupportedExtensions.GetFilesWithExtensions(_directoryInfo, SupportedExtensions.GetImages()).ToList(); if (!_images.Any()) { throw new ArgumentException( $"Directory ({_directoryInfo.Name}) should contain at least one supported image file."); } }
private void LazyExtract() { var archive = ArchiveFactory.Open(_archiveFileInfo.FullName); var currentFolder = new DirectoryInfo(Directory.GetCurrentDirectory()); var tempDir = currentFolder.GetDirectories().FirstOrDefault(x => x.Name == TempArchivePath); var tempDirInfo = tempDir ?? currentFolder.CreateSubdirectory(TempArchivePath); var archiveTempDir = tempDirInfo.GetDirectories().FirstOrDefault(x => x.Name == Name); var archiveTempDirInfo = archiveTempDir ?? tempDirInfo.CreateSubdirectory(Name); foreach (var file in archiveTempDirInfo.GetFiles()) { file.Delete(); } foreach (var entry in archive.Entries) { if (entry.IsDirectory) { continue; } entry.WriteToDirectory(archiveTempDirInfo.FullName, new ExtractionOptions { ExtractFullPath = true, Overwrite = true }); } _images = SupportedExtensions.GetFilesWithExtensions(archiveTempDirInfo, SupportedExtensions.GetImages(), SearchOption.AllDirectories) .ToList(); if (!_images.Any()) { throw new Exception($"Archive {_archiveFileInfo.FullName} doesn't contain any supported images."); } }