diff --git a/Plugins/Flow.Launcher.Plugin.Program/Logger/ProgramLogger.cs b/Plugins/Flow.Launcher.Plugin.Program/Logger/ProgramLogger.cs index 3c8ad783f55..06264c06c6d 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Logger/ProgramLogger.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Logger/ProgramLogger.cs @@ -98,17 +98,17 @@ internal static void LogException(string classname, string callingMethodName, st internal static void LogException(string message, Exception e) { //Index 0 is always empty. - var parts = message.Split('|'); + var parts = message.Split('|', StringSplitOptions.RemoveEmptyEntries); if (parts.Length < 4) { var logger = LogManager.GetLogger(""); logger.Error(e, $"fail to log exception in program logger, parts length is too small: {parts.Length}, message: {message}"); } - var classname = parts[1]; - var callingMethodName = parts[2]; - var loadingProgramPath = parts[3]; - var interpretationMessage = parts[4]; + var classname = parts[0]; + var callingMethodName = parts[1]; + var loadingProgramPath = parts[2]; + var interpretationMessage = parts[3]; LogException(classname, callingMethodName, loadingProgramPath, interpretationMessage, e); } diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs index 092418b6c40..77278330a47 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs @@ -131,7 +131,7 @@ public List ContextMenus(IPublicAPI api) ? $"/select,\"{FullPath}\"" : Settings.ExplorerArgs; - Main.StartProcess(Process.Start, + Main.StartProcess(Process.Start, new ProcessStartInfo( !string.IsNullOrWhiteSpace(Main._settings.CustomizedExplorer) ? Main._settings.CustomizedExplorer @@ -267,10 +267,14 @@ private static IEnumerable ProgramPaths(string directory, string[] suffi return new string[] { }; try { - var paths = Directory.EnumerateFiles(directory, "*", SearchOption.AllDirectories) + var paths = Directory.EnumerateFiles(directory, "*", new EnumerationOptions + { + IgnoreInaccessible = true, + RecurseSubdirectories = true + }) .Where(x => suffixes.Contains(Extension(x))); - return paths; + return paths; } catch (DirectoryNotFoundException e) { diff --git a/Plugins/Flow.Launcher.Plugin.Program/plugin.json b/Plugins/Flow.Launcher.Plugin.Program/plugin.json index 3eb4a40e105..f3c378ba435 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/plugin.json +++ b/Plugins/Flow.Launcher.Plugin.Program/plugin.json @@ -4,7 +4,7 @@ "Name": "Program", "Description": "Search programs in Flow.Launcher", "Author": "qianlifeng", - "Version": "1.1.0", + "Version": "1.1.1", "Language": "csharp", "Website": "https://github.com/Flow-Launcher/Flow.Launcher", "ExecuteFileName": "Flow.Launcher.Plugin.Program.dll",