improve:安全面板

This commit is contained in:
2026-03-28 16:46:35 +08:00
parent bb1b893961
commit fd137ae787
2 changed files with 12 additions and 4 deletions
@@ -366,17 +366,21 @@ namespace Ink_Canvas.Helpers
/// </summary>
/// <param name="root">要开始扫描的根目录路径。</param>
/// <remarks>
/// 仅处理扩展名为 `.exe`, `.dll`, `.config`, `.manifest`, `.dat`, `.enc` 的文件;会跳过被 IsExcludedPath 判定为排除的路径。遇到任何 I/O 或访问错误时会静默忽略,不会抛出异常。</remarks>
/// 仅处理扩展名为 `.exe`, `.dll`, `.config`, `.manifest`, `.dat`, `.enc` 的文件,以及应用根目录下的点名名单 `Names.txt`
/// 会跳过被 IsExcludedPath 判定为排除的路径。遇到任何 I/O 或访问错误时会静默忽略,不会抛出异常。</remarks>
private static void LockFilesRecursive(string root)
{
try
{
var rollCallNamesPath = NormalizePath(Path.Combine(root, "Names.txt"));
foreach (var file in Directory.GetFiles(root, "*", SearchOption.AllDirectories))
{
if (!IsExcludedPath(file))
{
var ext = Path.GetExtension(file);
if (string.Equals(ext, ".exe", StringComparison.OrdinalIgnoreCase) ||
var normFile = NormalizePath(file);
if (string.Equals(normFile, rollCallNamesPath, StringComparison.OrdinalIgnoreCase) ||
string.Equals(ext, ".exe", StringComparison.OrdinalIgnoreCase) ||
string.Equals(ext, ".dll", StringComparison.OrdinalIgnoreCase) ||
string.Equals(ext, ".config", StringComparison.OrdinalIgnoreCase) ||
string.Equals(ext, ".manifest", StringComparison.OrdinalIgnoreCase) ||
+6 -2
View File
@@ -1,4 +1,4 @@
using Ink_Canvas.Helpers;
using Ink_Canvas.Helpers;
using System;
using System.ComponentModel;
using System.IO;
@@ -38,7 +38,11 @@ namespace Ink_Canvas
var result = MessageBox.Show("是否保存?", "名单导入", MessageBoxButton.YesNo);
if (result == MessageBoxResult.Yes)
{
File.WriteAllText(App.RootPath + "Names.txt", TextBoxNames.Text);
var path = App.RootPath + "Names.txt";
ProcessProtectionManager.WithWriteAccess(path, () =>
{
File.WriteAllText(path, TextBoxNames.Text);
});
}
}
}