private void bgwCommand_DoWork(FolderIconCommandArguments arguments) { var parent = arguments.Directory.Parent; Roots.Refresh(); switch (arguments.Command) { case FolderIconCommand.SetIconTree: case FolderIconCommand.SetIconsAuto: case FolderIconCommand.ApplyFolderIcons: if (Toggles.ResetCaches) { ResetCachesImpl(); } break; } switch (arguments.Command) { case FolderIconCommand.GenerateSidecarFiles: var parentIcon = DesktopIniParser.GetIcon(parent.FullName); GenerateSidecarFilesImpl(arguments.Directory, parentIcon, arguments.PreviewMode, arguments.Recursive); break; case FolderIconCommand.SetIconTree: SetIconTreeImpl(arguments); break; case FolderIconCommand.SetIconsAuto: SetIconAutoImpl(arguments); break; case FolderIconCommand.FixAttributes: case FolderIconCommand.ApplyFolderIcons: var parentInfo = FolderIconInfo.Get(parent.FullName); ApplyFolderIconsImpl(arguments.Directory, parentInfo, arguments.PreviewMode, arguments.Command == FolderIconCommand.FixAttributes, arguments.Recursive); break; } }