news 2026/3/26 1:18:03

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/3/13 0:32:42

【好写作AI】别慌!“AI痕迹”检测,到底在检测什么?

好写作AI官方网址&#xff1a;https://www.haoxiezuo.cn/一、新的焦虑正在蔓延&#xff1a;你的论文&#xff0c;有“AI味”吗&#xff1f; 提交论文前&#xff0c;除了查重&#xff0c;你是不是开始多了一个动作——把文段丢进各种“AI检测器”&#xff0c;紧张地等待结果&…

作者头像 李华
网站建设 2026/3/6 22:02:35

制造工厂研发人员需要实现5个SolidWorks共享一台服务器如何实现

在制造工厂中&#xff0c;当5名SolidWorks研发人员需要共享一台服务器时&#xff0c;合理的配置和优化能够显著提升协作效率和数据安全性。此方案核心在于集中化资源管理、动态化资源分配、智能化权限管控&#xff0c;结合高性能硬件配置与协同设计功能&#xff0c;可显著提升资…

作者头像 李华
网站建设 2026/3/22 17:33:16

数据不会说话?虎贲等考 AI 数据分析:让论文实证硬核到惊艳导师

还在对着一堆问卷数据、实验结果抓耳挠腮&#xff1f;用 SPSS 半天跑不出一个相关性分析&#xff0c;用 Excel 画的图表被批 “小学生水平”&#xff1f;辛苦收集的数据&#xff0c;最后只能用干巴巴的文字描述&#xff0c;论文实证部分毫无说服力&#xff1f; 在论文写作的实…

作者头像 李华
网站建设 2026/3/22 23:47:44

打破“数据孤岛”,实现全厂设备一站式可视化管理

核心痛点&#xff1a;在传统的制造工厂中&#xff0c;不同品牌、不同型号的PLC&#xff08;西门子、三菱、欧姆龙等&#xff09;控制着生产线上的各类设备。这些设备数据相互隔绝&#xff0c;形成一个个“数据孤岛”。管理者无法实时掌握设备运行状态、工艺参数、故障信息&…

作者头像 李华
网站建设 2026/3/21 22:07:20

Python+Vue的线上社区信息发布管理平台设计 Pycharm django flask

收藏关注不迷路&#xff01;&#xff01;需要的小伙伴可以发链接或者截图给我 项目介绍 随着互联网技术的不断发展&#xff0c;线上社区已经成为了人们日常生活中不可或缺的一部分。在这样的背景下&#xff0c;为了更好地服务社区用户&#xff0c;提高信息传递的效率和准确性&a…

作者头像 李华