mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2026-02-14 15:53:30 -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;
|
||||||
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace DiscordChatExporter.Core.Utils;
|
namespace DiscordChatExporter.Core.Utils;
|
||||||
|
|
@ -10,22 +11,14 @@ public static class Url
|
||||||
var buffer = new StringBuilder();
|
var buffer = new StringBuilder();
|
||||||
var position = 0;
|
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
|
// For absolute paths, prepend file:// protocol for proper browser handling
|
||||||
if (isAbsolute)
|
if (Path.IsPathFullyQualified(filePath))
|
||||||
{
|
{
|
||||||
buffer.Append("file://");
|
buffer.Append("file://");
|
||||||
|
|
||||||
// On Windows, we need to add an extra slash before the drive letter
|
// On Windows, we need to add an extra slash before the drive letter
|
||||||
// e.g., file:///C:/path instead of file://C:/path
|
// e.g., file:///C:/path instead of file://C:/path
|
||||||
if (isWindowsAbsolute)
|
if (!filePath.StartsWith('/') && !filePath.StartsWith('\\'))
|
||||||
{
|
{
|
||||||
buffer.Append('/');
|
buffer.Append('/');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue