bloxstrap/Bloxstrap/Utility/Filesystem.cs
2024-10-06 21:52:54 +01:00

36 lines
1009 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace Bloxstrap.Utility
{
internal static class Filesystem
{
internal static long GetFreeDiskSpace(string path)
{
foreach (var drive in DriveInfo.GetDrives())
{
// https://github.com/bloxstraplabs/bloxstrap/issues/1648#issuecomment-2192571030
if (path.ToUpperInvariant().StartsWith(drive.Name))
return drive.AvailableFreeSpace;
}
return -1;
}
internal static void AssertReadOnly(string filePath)
{
var fileInfo = new FileInfo(filePath);
if (!fileInfo.Exists || !fileInfo.IsReadOnly)
return;
fileInfo.IsReadOnly = false;
App.Logger.WriteLine("Filesystem::AssertReadOnly", $"The following file was set as read-only: {filePath}");
}
}
}