当前位置: 首页 > news >正文

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

http://www.jsqmd.com/news/248496/

相关文章:

  • 从0到1:零基础入门黑客网络安全,这一篇就够了!(非常详细)
  • C语言中switch case使用技巧,告别冗长if-else代码
  • 网络安全入门到精通:2026转行必备指南,收藏这篇就够了!
  • leetcode 870. Advantage Shuffle 优势洗牌
  • 如何一步步将 ASP.NET MVC 升级为.NET
  • 文心5.0登上LMArena文本榜国内第一,1月22日或将正式发布
  • 基于Flexbox的现代化CSS框架:Bulma快速入门指南
  • lemon评测系统在哪下载安全?官方渠道与使用指南
  • 【精华收藏】模型微调技术详解:从原理到实践的全面指南,解锁大模型在医疗、金融等领域的垂直应用
  • 【好写作AI】跨学科“鸡尾酒”调制师:专治论文“理论乱炖”与“术语打架”
  • 绿城郑州爱心公益网站毕业论文+PPT(附源代码+演示视频)
  • 深度测评专科生必备!2026 TOP10 AI论文网站评测与推荐
  • 导师严选9个AI论文工具,继续教育学生轻松搞定论文写作!
  • 【好写作AI】AI来了,学术伦理就崩了?我们用行动说不!
  • 导师推荐10个AI论文平台,助你搞定本科生毕业论文!
  • 【好写作AI】别慌!“AI痕迹”检测,到底在检测什么?
  • 编译(二):class、dex、so 编译流程
  • 制造工厂研发人员需要实现5个SolidWorks共享一台服务器如何实现
  • 【好写作AI】实验猿的福音:把跑胶写Paper的时间,从“半年刊”变成“周更”
  • sudo reboot的庖丁解牛
  • paperxieTurnitin AI 率检测:每日 200 篇免费查重,留学生论文的 “隐形安全盾”
  • qKnow 知识平台核心能力解析|第 01 期:知识图谱怎么建才不乱?先把图谱模型设计清楚
  • 【好写作AI】工科生的“技术文档外挂”:让你画的图、算的数,自己会说话
  • 【必学收藏】大模型核心技术精讲:MoE架构、LoRA微调与RAG增强技术全解析
  • Lua 的 Package 模块
  • 网络服务器入门指南:搭建与管理
  • AI 法律顾问开发:基于 RAG + 知识图谱,如何让大模型精准回答“离婚财产分割”难题?
  • 全网最全专科生AI论文写作软件TOP9测评
  • 【第三方软件测试机构:LoadRunner常见错误代码27796和26612的分析和解决方法】
  • 经典的PHP+MySQL开发组合的微信投票活动源码系统