diff --git a/src/Files.Shared/Helpers/FileExtensionHelpers.cs b/src/Files.Shared/Helpers/FileExtensionHelpers.cs index 63225d85cf16..970a3f777292 100644 --- a/src/Files.Shared/Helpers/FileExtensionHelpers.cs +++ b/src/Files.Shared/Helpers/FileExtensionHelpers.cs @@ -2,6 +2,7 @@ // Licensed under the MIT License. using System; +using System.IO; using System.Linq; namespace Files.Shared.Helpers @@ -22,7 +23,12 @@ public static bool HasExtension(string? filePathToCheck, params string[] extensi if (string.IsNullOrWhiteSpace(filePathToCheck)) return false; - return extensions.Any(ext => filePathToCheck.EndsWith(ext, StringComparison.OrdinalIgnoreCase)); + // Don't check folder paths to avoid issues + // https://github.com/files-community/Files/issues/17094 + if (Directory.Exists(filePathToCheck)) + return false; + + return extensions.Any(ext => Path.GetExtension(filePathToCheck).Equals(ext, StringComparison.OrdinalIgnoreCase)); } /// @@ -54,7 +60,7 @@ public static bool IsAudioFile(string? fileExtensionToCheck) { return HasExtension(fileExtensionToCheck, ".mp3", ".m4a", ".wav", ".wma", ".aac", ".adt", ".adts", ".cda", ".flac"); } - + /// /// Check if the file extension is a video file. /// @@ -213,7 +219,7 @@ public static bool IsVhdFile(string? fileExtensionToCheck) { return HasExtension(fileExtensionToCheck, ".vhd", ".vhdx"); } - + /// /// Check if the file extension is a screen saver file. /// @@ -256,7 +262,7 @@ public static bool IsScriptFile(string? filePathToCheck) { return HasExtension(filePathToCheck, ".py", ".ahk"); } - + /// /// Check if the file extension is a system file. ///