Update Filesystem.cs

Made disk space check more reliable.
This commit is contained in:
Cryolithic 2024-10-18 14:53:41 -07:00
parent 2e63da5779
commit 1e3f76a2fd

View File

@ -11,14 +11,21 @@ namespace Bloxstrap.Utility
{
internal static long GetFreeDiskSpace(string path)
{
foreach (var drive in DriveInfo.GetDrives())
try
{
// https://github.com/bloxstraplabs/bloxstrap/issues/1648#issuecomment-2192571030
if (path.ToUpperInvariant().StartsWith(drive.Name))
var isUri = Uri.TryCreate(p, UriKind.RelativeOrAbsolute, out var u);
if (!Path.IsPathRooted(p) || !Path.IsPathFullyQualified(p) || (isUri && (u?.IsUnc??false)))
{
return -1;
}
var drive = new DriveInfo(p);
return drive.AvailableFreeSpace;
}
return -1;
catch (ArgumentException e)
{
App.Logger.WriteLine("Filesystem::BadPath", $"The path: {p} does not contain a valid drive info.");
return -1
}
}
internal static void AssertReadOnly(string filePath)