From 97485c280be3a68970f528f7f5c8e521dfdff41e Mon Sep 17 00:00:00 2001 From: Jacob Pfundstein <81419612+CanePlayz@users.noreply.github.com> Date: Sat, 20 Jun 2026 12:55:49 +0200 Subject: [PATCH] Fix output path detection to correctly identify directories and files (#1556) --- DiscordChatExporter.Core/Exporting/ExportRequest.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/DiscordChatExporter.Core/Exporting/ExportRequest.cs b/DiscordChatExporter.Core/Exporting/ExportRequest.cs index db83d98a..1285b246 100644 --- a/DiscordChatExporter.Core/Exporting/ExportRequest.cs +++ b/DiscordChatExporter.Core/Exporting/ExportRequest.cs @@ -206,10 +206,15 @@ public partial class ExportRequest { var actualOutputPath = FormatPath(outputPath, guild, channel, after, before); - // Output is a directory + // Determine whether the output path refers to a directory or a file. + // The extension-based heuristic is evaluated on the original, unsubstituted path, + // because the value of a template token (e.g. a guild or channel name) may contain + // a period that would otherwise be mistaken for a file extension, incorrectly causing + // a directory path to be treated as a file. + // https://github.com/Tyrrrz/DiscordChatExporter/issues/1502 if ( Directory.Exists(actualOutputPath) - || string.IsNullOrWhiteSpace(Path.GetExtension(actualOutputPath)) + || string.IsNullOrWhiteSpace(Path.GetExtension(outputPath)) ) { var fileName = GetDefaultOutputFileName(guild, channel, format, after, before);