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}"); } } }