From 8cf8fbca0a67cc5d8d3b33b1113e8f801a100c55 Mon Sep 17 00:00:00 2001 From: Paolo Ambrosio Date: Fri, 2 Jun 2023 07:03:03 +0100 Subject: [PATCH] Exclude hidden files from enabled dir --- src/Core/ModManager.cs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Core/ModManager.cs b/src/Core/ModManager.cs index e0f15d4..d9b1748 100644 --- a/src/Core/ModManager.cs +++ b/src/Core/ModManager.cs @@ -72,7 +72,7 @@ public List FetchState() return new ModState( PackageName: packageName, PackagePath: packagePath, - IsEnabled: isEnabled, + IsEnabled: isEnabled, IsInstalled: installedPackageNames.Contains(packageName) ); }); @@ -290,7 +290,14 @@ private IReadOnlyCollection ListModPackages(string path) { if (Directory.Exists(path)) { - return Directory.EnumerateFiles(path).ToList(); + var options = new EnumerationOptions() + { + MatchType = MatchType.Win32, + IgnoreInaccessible = false, + AttributesToSkip = FileAttributes.Hidden | FileAttributes.System, + MaxRecursionDepth = 0, + }; + return Directory.EnumerateFiles(path, "*", options).ToList(); } else { @@ -300,7 +307,8 @@ private IReadOnlyCollection ListModPackages(string path) private string PackageName(string archivePath) => Path.GetFileNameWithoutExtension(archivePath); - private Dictionary> ReadPreviouslyInstalledFiles() { + private Dictionary> ReadPreviouslyInstalledFiles() + { if (!File.Exists(workPaths.CurrentStateFile)) { return new Dictionary>(); @@ -312,7 +320,8 @@ private Dictionary> ReadPreviouslyInstalledF private void WriteInstalledFiles(Dictionary> filesByMod) { - if (!filesByMod.Any() && !File.Exists(workPaths.CurrentStateFile)) { + if (!filesByMod.Any() && !File.Exists(workPaths.CurrentStateFile)) + { return; } File.WriteAllText(workPaths.CurrentStateFile, JsonConvert.SerializeObject(filesByMod, JsonSerializerSettings));