mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2026-02-14 07:43:31 -07:00
Use Path.IsPathFullyQualified for absolute path detection (fixes #1473)
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
This commit is contained in:
parent
b58b159123
commit
9372ef87e8
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace DiscordChatExporter.Core.Utils;
|
||||
|
|
@ -10,22 +11,14 @@ public static class Url
|
|||
var buffer = new StringBuilder();
|
||||
var position = 0;
|
||||
|
||||
// Check if the path is absolute (either Unix-style or Windows-style)
|
||||
// Unix: starts with /
|
||||
// Windows: starts with drive letter followed by colon (e.g., C:)
|
||||
var isUnixAbsolute = filePath.StartsWith('/') || filePath.StartsWith('\\');
|
||||
var isWindowsAbsolute =
|
||||
filePath.Length >= 2 && char.IsLetter(filePath[0]) && filePath[1] == ':';
|
||||
var isAbsolute = isUnixAbsolute || isWindowsAbsolute;
|
||||
|
||||
// For absolute paths, prepend file:// protocol for proper browser handling
|
||||
if (isAbsolute)
|
||||
if (Path.IsPathFullyQualified(filePath))
|
||||
{
|
||||
buffer.Append("file://");
|
||||
|
||||
// On Windows, we need to add an extra slash before the drive letter
|
||||
// e.g., file:///C:/path instead of file://C:/path
|
||||
if (isWindowsAbsolute)
|
||||
if (!filePath.StartsWith('/') && !filePath.StartsWith('\\'))
|
||||
{
|
||||
buffer.Append('/');
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue