From 597682f4bd80ad63e6e9eae0607fa4d855b142df Mon Sep 17 00:00:00 2001 From: bluepilledgreat <97983689+bluepilledgreat@users.noreply.github.com> Date: Tue, 11 Mar 2025 10:22:28 +0000 Subject: [PATCH] assertreadonly the whole directory --- Bloxstrap/Bootstrapper.cs | 2 ++ Bloxstrap/Utility/Filesystem.cs | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/Bloxstrap/Bootstrapper.cs b/Bloxstrap/Bootstrapper.cs index 4d49b97..3bf0cff 100644 --- a/Bloxstrap/Bootstrapper.cs +++ b/Bloxstrap/Bootstrapper.cs @@ -693,6 +693,8 @@ namespace Bloxstrap if (dirName != App.State.Prop.Player.VersionGuid && dirName != App.State.Prop.Studio.VersionGuid) { + Filesystem.AssertReadOnlyDirectory(dir); + // check if it's still being used first // we dont want to accidentally delete the files of a running roblox instance if (!TryDeleteRobloxInDirectory(dir)) diff --git a/Bloxstrap/Utility/Filesystem.cs b/Bloxstrap/Utility/Filesystem.cs index 77bd284..13a9d7f 100644 --- a/Bloxstrap/Utility/Filesystem.cs +++ b/Bloxstrap/Utility/Filesystem.cs @@ -31,5 +31,15 @@ namespace Bloxstrap.Utility fileInfo.IsReadOnly = false; App.Logger.WriteLine("Filesystem::AssertReadOnly", $"The following file was set as read-only: {filePath}"); } + + internal static void AssertReadOnlyDirectory(string directoryPath) + { + var directory = new DirectoryInfo(directoryPath) { Attributes = FileAttributes.Normal }; + + foreach (var info in directory.GetFileSystemInfos("*", SearchOption.AllDirectories)) + info.Attributes = FileAttributes.Normal; + + App.Logger.WriteLine("Filesystem::AssertReadOnlyDirectory", $"The following directory was set as read-only: {directoryPath}"); + } } }