news 2026/4/18 10:52:04

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/4/18 8:29:43

绿城郑州爱心公益网站毕业论文+PPT(附源代码+演示视频)

文章目录绿城郑州爱心公益网站一、项目简介&#xff08;源代码在文末&#xff09;1.运行视频2.&#x1f680; 项目技术栈3.✅ 环境要求说明4.包含的文件列表&#xff08;含论文&#xff09;数据库结构与测试用例系统功能结构前端运行截图后端运行截图项目部署源码下载绿城郑州爱…

作者头像 李华
网站建设 2026/4/18 10:49:25

网络服务器入门指南:搭建与管理

网络服务器入门指南&#xff1a;搭建与管理选择服务器硬件或云服务根据需求选择物理服务器或云服务提供商。物理服务器需要购买硬件设备&#xff0c;适合对数据控制要求高的场景。云服务如AWS、阿里云等提供弹性扩展能力&#xff0c;适合初创企业或个人开发者。评估硬件配置时关…

作者头像 李华
网站建设 2026/4/18 5:37:02

【好写作AI】AI来了,学术伦理就崩了?我们用行动说不!

好写作AI官方网址&#xff1a;https://www.haoxiezuo.cn/一、深夜的良心拷问&#xff1a;用了AI的论文&#xff0c;还算“我”的吗&#xff1f; 当你好不容易用好写作AI搞定摘要、理清逻辑、降重到8%后&#xff0c;准备点击提交的瞬间&#xff0c;那个幽灵般的问题总会出现&…

作者头像 李华
网站建设 2026/4/18 10:27:15

经典的PHP+MySQL开发组合的微信投票活动源码系统

温馨提示&#xff1a;文末有资源获取方式你是否在寻找一个能快速启动、模式清晰、且能产生多重收益的互联网项目&#xff1f;微信投票活动巨大的市场需求和清晰的盈利模式&#xff0c;一直吸引着众多创业者。现在&#xff0c;一个功能更加强大的新版投票源码系统应运而生&#…

作者头像 李华
网站建设 2026/4/18 8:07:41

audio2face 眼睛驱动

目录 AnimateCharacterFromWavFileAsync mh_arkit_mapping_pose_A2F 2️⃣ 里面到底有没有「眼睛相关」的曲线&#xff1f;✅ 有 &#x1f441; 眨眼 &#x1f441; 眼球转动 &#x1f441; 眼睛张开程度&#xff08;部分 Rig&#xff09; 3️⃣ 那为什么你“看不到眼睛…

作者头像 李华