public async Task Thumbnail(string[] args) { _appSettings.Verbose = ArgsHelper.NeedVerbose(args); _appSettings.ApplicationType = AppSettings.StarskyAppType.Thumbnail; if (new ArgsHelper().NeedHelp(args)) { new ArgsHelper(_appSettings, _console).NeedHelpShowDialog(); return; } new ArgsHelper().SetEnvironmentByArgs(args); var subPath = new ArgsHelper(_appSettings).SubPathOrPathValue(args); var getSubPathRelative = new ArgsHelper(_appSettings).GetRelativeValue(args); if (getSubPathRelative != null) { subPath = new StructureService(_selectorStorage.Get( SelectorStorage.StorageServices.SubPath), _appSettings.Structure) .ParseSubfolders(getSubPathRelative); } if (new ArgsHelper(_appSettings).GetThumbnail(args)) { var storage = _selectorStorage.Get(SelectorStorage.StorageServices.SubPath); var isFolderOrFile = storage.IsFolderOrFile(subPath); if (_appSettings.IsVerbose()) { _console.WriteLine(isFolderOrFile.ToString()); } if (isFolderOrFile == FolderOrFileModel.FolderOrFileTypeList.File) { // If single file => create thumbnail var fileHash = (await new FileHash(storage).GetHashCodeAsync(subPath)); if (fileHash.Value) { await _thumbnailService.CreateThumb(subPath, fileHash.Key); // <= this uses subPath } } else { await _thumbnailService.CreateThumb(subPath); } _console.WriteLine("Thumbnail Done!"); } if (new ArgsHelper(_appSettings).NeedCleanup(args)) { _console.WriteLine(">>>>> Heavy CPU Feature => NeedCacheCleanup <<<<< "); await _thumbnailCleaner.CleanAllUnusedFilesAsync(); _console.WriteLine("Done!"); } }