1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-20 17:08:00 +02:00

Merge pull request #1465 from disarray2077/patch-4

Fix `GetExtension` and add `HasExtension` to `Path`
This commit is contained in:
Brian Fiete 2022-02-24 16:13:04 -08:00 committed by GitHub
commit 55e8fc44de
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -303,11 +303,54 @@ namespace System.IO
public static Result<void> GetExtension(StringView inPath, String outExt)
{
int i;
if ((i = inPath.LastIndexOf('.')) != -1)
outExt.Append(inPath, i);
if (inPath.IsEmpty)
return .Err;
CheckInvalidPathChars(inPath);
for (int i = inPath.Length; --i >= 0;)
{
char8 ch = inPath[i];
if (ch == '.')
{
if (i != inPath.Length - 1)
{
outExt.Append(inPath.Substring(i, inPath.Length - i));
return .Ok;
}
else
break;
}
if (ch == DirectorySeparatorChar || ch == AltDirectorySeparatorChar || ch == VolumeSeparatorChar)
break;
}
return .Err;
}
public static bool HasExtension(StringView path)
{
if (path.IsEmpty)
return false;
CheckInvalidPathChars(path);
for (int i = path.Length; --i >= 0;)
{
char8 ch = path[i];
if (ch == '.')
{
if (i != path.Length - 1)
return true;
else
return false;
}
if (ch == DirectorySeparatorChar || ch == AltDirectorySeparatorChar || ch == VolumeSeparatorChar)
break;
}
return false;
}
public static Result<void> GetTempPath(String outPath)
{