news 2026/1/21 13:40:09

Windows Server SMB 共享文件 回收站

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows Server SMB 共享文件 回收站

1. 项目简介

ShareRecycleBin 是一个专为 Windows Server (特别是 SMB 共享环境) 设计的增量回收站服务。它通过硬链接 (Hard Link) 技术实现对文件的“即时备份”,并能在文件被删除时将其移动到指定的回收站目录,同时保留原始的目录结构和权限锁定。

2. 核心技术架构

项目采用解耦生产者-消费者模型,通过双优先级队列解决全量扫描与实时监控之间的 IO 冲突。

逻辑组件分工:

  • FileMonitor (实时监视器):捕捉文件系统的 Created, Deleted, Renamed 事件,享有高优先级。

  • FileScanner (全量扫描器):服务启动时扫描存量文件,享有低优先级,带 IO 冷却逻辑。

  • FileHandler (业务处理器):执行具体的 Win32 API 调用(硬链接创建、文件移动、ACL 修改)。

  • PathHelper (路径助手):处理 \?\ 长路径转换及相对路径计算。

3. 文件列表说明

文件名类型说明
App.config配置文件存储共享路径、影子库路径、回收站路径及扩展名白名单。
Program.cs入口类负责服务的注册、启动逻辑以及控制台调试模式切换。
RecycleBinService.cs服务类继承自 ServiceBase,协调监控、扫描与消费线程的生命周期。
WatcherTask.cs模型类定义 WatcherAction 枚举和 WatcherTask 任务对象。
FileMonitor.cs逻辑类封装 FileSystemWatcher,负责将实时事件压入高优先级队列。
FileScanner.cs逻辑类负责背景全量扫描,将任务压入低优先级队列。
FileHandler.cs业务类包含硬链接创建、文件移动及权限锁定等核心 IO 操作。
PathHelper.cs工具类静态方法库,处理长路径支持、白名单过滤及路径转换。

4. 关键配置项 (App.config)

<appSettings> <add key="ShareRoot" value="D:\协同文件" /> <add key="ShadowRoot" value="D:\.ShadowIndex" /> <add key="RecycleRoot" value="D:\回收站" /> <add key="WhiteList" value="dwg,dxf,doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,7z,jpg,png" /> <add key="WatcherBufferSizeKB" value="64" /> <add key="EnableCleanup" value="false"/> <add key="RecycleDays" value="30"/> </appSettings>

5. 开发与部署

编译环境

  • .NET Framework 4.7.2+ 或 .NET 6/8

  • Visual Studio 2022

  • NuGet 包:Serilog, Serilog.Sinks.File, Serilog.Sinks.Console

Git 常规操作流

如果您在开发过程中需要同步代码,请参考以下操作:

  1. 拉取最新代码:git pull origin master
  2. 查看修改状态:git status
  3. 提交修改:
git add . git commit -m "feat: 增加对硬链接创建失败的重试逻辑"

6. 注意事项

  1. 分区限制:ShadowRoot 必须与 ShareRoot 位于同一磁盘分区,否则 CreateHardLink 将失败。
  2. 性能优化:在处理超过 100 万个文件时,建议将 WatcherBufferSizeKB 调至 128。
  3. 权限:服务运行账户(如 LocalSystem)必须对源目录和目标目录拥有完整的读写及修改权限的权限(Full Control)。

7. 服务安装与启动指南

  1. 请以 管理员身份 运行 SMBRecycleBin.exe
  2. 使用 sc.exe 指令安装(推荐)
  • 安装服务

    # 注意:binPath= 后面有一个空格,路径建议使用双引号包裹 sc.exe create SMBRecycleBin binPath= "C:\RecycleBinService\ShareRecycleBin.exe" start= auto displayname= "SMB共享回收站增强服务"
  • 启动服务

    sc.exe start SMBRecycleBin
  • 卸载服务

    sc.exe delete SMBRecycleBin
  • 停止服务

    sc.exe stop SMBRecycleBin

项目地址

https://github.com/CHMOSE023/ShareRecycleBin.git

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/19 12:23:35

ppo价值函数是用当前图像提取的特征来计算的吗

价值函数是否用“当前图像提取的特征”来计算&#xff1f; 简短回答&#xff1a; ✅ 是的&#xff0c;在基于视觉输入&#xff08;如图像&#xff09;的深度强化学习中&#xff0c;价值函数通常是通过从当前图像中提取的特征来计算的。但这不是“必须”的——它取决于状态表示的…

作者头像 李华
网站建设 2026/1/21 3:12:31

如何一步步将 ASP.NET MVC 升级为.NET

引言 将 ASP.NET MVC 应用从.NET Framework 升级到现代.NET 并不是简单的版本提升。此次迁移代表了运行时、托管模型、配置系统、依赖注入和 HTTP 流水线架构的转变。许多团队低估了这一点&#xff0c;把它当作标准的框架升级&#xff0c;结果在流程后期才发现他们应用中的核心…

作者头像 李华
网站建设 2026/1/20 7:31:35

【收藏学习】大模型RAG技术全攻略:从基础原理到高级优化方案

前言 – 在AI领域&#xff0c;随着大模型的广泛应用&#xff0c;如何高效地利用外部知识成为提升模型性能的关键。检索增强生成&#xff08;Retrieval-Augmented Generation, 简称RAG&#xff09;作为一种结合信息检索与文本生成的技术框架&#xff0c;正在迅速成为解决这一问题…

作者头像 李华
网站建设 2026/1/20 20:31:58

COOH-S-CH2-S-COOH,双羧基和响应性桥链

COOH-S-CH2-S-COOH&#xff0c;双羧基和响应性桥链一、COOH–S–CH₂–S–COOH 的基本描述COOH–S–CH₂–S–COOH 是一种功能化小分子化合物&#xff0c;分子结构可简化表示为&#xff1a;HOOC–S–CH₂–S–COOH其结构特点如下&#xff1a;双羧基&#xff08;–COOH&#xff…

作者头像 李华
网站建设 2026/1/20 15:07:51

解锁文献综述新姿势:书匠策AI带你玩转学术“拼图游戏”

在学术江湖里&#xff0c;文献综述堪称“通关秘籍”。它不仅是研究的前期铺垫&#xff0c;更是厘清学术脉络、避免重复造轮子的关键。然而&#xff0c;面对浩如烟海的文献&#xff0c;手动梳理往往让人“头秃”——检索如大海捞针&#xff0c;分析如盲人摸象&#xff0c;写作如…

作者头像 李华
网站建设 2026/1/20 2:30:16

基于深度学习的对抗样本攻击算法研究【附代码+数据】

✅ 博主简介&#xff1a;擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导&#xff0c;毕业论文、期刊论文经验交流。✅成品或者定制&#xff0c;扫描文章底部微信二维码。(1) 基于差分进化与C&W攻击结合的通用对抗样本生成算法深度学习模型在图像分类、…

作者头像 李华