From 26df2834f9feee8d4d739c1b08ce0bcbc4d4203e Mon Sep 17 00:00:00 2001 From: marko1olo Date: Sat, 6 Jun 2026 04:29:51 +0400 Subject: [PATCH] Fix launching files from jar archives --- .../Helpers/Navigation/NavigationHelpers.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/Files.App/Helpers/Navigation/NavigationHelpers.cs b/src/Files.App/Helpers/Navigation/NavigationHelpers.cs index e436699351de..940a767cb43c 100644 --- a/src/Files.App/Helpers/Navigation/NavigationHelpers.cs +++ b/src/Files.App/Helpers/Navigation/NavigationHelpers.cs @@ -759,6 +759,24 @@ private static async Task OpenFile(string path, IShellPage ass if (!launchSuccess) await Win32Helper.InvokeWin32ComponentAsync(path, associatedInstance, args); } + else if (childFile.Item is ZipStorageFile zipStorageFile) + { + var options = InitializeWithWindow(new LauncherOptions()); + var storageItem = (StorageFile)await FilesystemTasks.Wrap(() => zipStorageFile.ToStorageFileAsync().AsTask()); + if (storageItem is null) + { + await Win32Helper.InvokeWin32ComponentAsync(path, associatedInstance, args); + } + else if (!await Launcher.LaunchFileAsync(storageItem, options)) + { + var pickerOptions = InitializeWithWindow(new LauncherOptions + { + DisplayApplicationPicker = true + }); + if (!await Launcher.LaunchFileAsync(storageItem, pickerOptions)) + await Win32Helper.InvokeWin32ComponentAsync(path, associatedInstance, args); + } + } else { await Win32Helper.InvokeWin32ComponentAsync(path, associatedInstance, args);