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.mzph.cn/news/1163727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从0到1:零基础入门黑客网络安全,这一篇就够了!(非常详细)

前言 零基础要怎么学黑客技术&#xff1f;作为八年网安人&#xff0c;分享我一套最强的学习攻略&#xff0c;就算你是新手小白&#xff0c;也可以知道从哪里开始入门&#xff01; 一、入门基础 作为没有学过计算机的新手小白&#xff0c;首先要做的就是把基础打牢&#xff0…

C语言中switch case使用技巧,告别冗长if-else代码

在C语言中&#xff0c;switch case语句是一种高效的多分支选择结构&#xff0c;相比连续的if-else语句&#xff0c;它在处理多个确定值的情况时更加清晰和简洁。合理使用switch case不仅能提高代码可读性&#xff0c;还能在某些情况下优化程序性能。本文将深入探讨switch case的…

网络安全入门到精通:2026转行必备指南,收藏这篇就够了!

网络安全入门到精通&#xff1a;2026转行必备指南&#xff0c;收藏这篇就够了&#xff01; 本文详细介绍了2026年网络安全行业的薪资情况、工作内容与前景&#xff0c;提供了从入门到专家的职业发展路径。文章涵盖网络安全基础知识、权威认证获取、实践经验积累及领域专注选择…

leetcode 870. Advantage Shuffle 优势洗牌

Problem: 870. Advantage Shuffle 优势洗牌 解题过程 贪心&#xff0c;nums2排序&#xff0c;带上索引的&#xff0c;对nu从小到大遍历的&#xff0c;排序nums1&#xff0c;对每个nu的数字i&#xff0c;从nums1中找到比它大的最小数字&#xff0c;因nu排序了&#xff0c;nums1也…

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

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

文心5.0登上LMArena文本榜国内第一,1月22日或将正式发布

1月15日&#xff0c;LMArena 大模型竞技场最新排名显示&#xff0c;文心大模型ERNIE-5.0-0110以1460分登上LMArena文本榜国内第一、全球第八&#xff0c;超过GPT-5.1-High、Gemini-2.5-Pro等多款国内外主流模型。其中&#xff0c;在数学能力排名中&#xff0c;ERNIE-5.0-0110 位…

基于Flexbox的现代化CSS框架:Bulma快速入门指南

Bulma Bulma 是一个基于 Flexbox 的现代化 CSS 框架&#xff0c;专注于提供优雅的 UI 组件和响应式布局解决方案。 功能特性 纯 CSS 框架&#xff1a;项目输出仅为单个 CSS 文件&#xff08;bulma.css&#xff09;&#xff0c;不包含任何 JavaScript&#xff0c;可以与任何 …

lemon评测系统在哪下载安全?官方渠道与使用指南

对于想要获取lemon评测系统的用户来说&#xff0c;了解如何安全下载和正确使用这款工具是首要任务。作为一款性能测试软件&#xff0c;它能帮助开发者评估应用程序在不同环境下的运行表现&#xff0c;但在下载和使用过程中需要注意几个关键点。 lemon评测系统是什么软件 lemon评…

【精华收藏】模型微调技术详解:从原理到实践的全面指南,解锁大模型在医疗、金融等领域的垂直应用

模型微调是连接通用AI模型与垂直领域需求的关键技术&#xff0c;通过针对性参数优化使大模型从"博学"变为"专精"。文章详细介绍了微调原理、应用场景、分类方法&#xff08;全参数微调与参数高效微调&#xff09;、实施流程及实际案例&#xff0c;帮助开发…

【好写作AI】跨学科“鸡尾酒”调制师:专治论文“理论乱炖”与“术语打架”

好写作AI官方网址&#xff1a;https://www.haoxiezuo.cn/一、做跨学科研究的你&#xff0c;是否每天都在“学术巴别塔”里当翻译&#xff1f;术语互殴&#xff1a;A学科的“能动性”和B学科的“主体性”是一个意思吗&#xff1f;查了半天文献&#xff0c;更晕了。理论脱臼&…

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

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

深度测评专科生必备!2026 TOP10 AI论文网站评测与推荐

深度测评专科生必备&#xff01;2026 TOP10 AI论文网站评测与推荐 为什么需要一份专属专科生的AI论文网站榜单&#xff1f; 随着人工智能技术在教育领域的深入应用&#xff0c;越来越多的专科生开始借助AI工具提升论文写作效率。然而&#xff0c;面对市场上五花八门的平台&…

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

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

导师推荐10个AI论文平台,助你搞定本科生毕业论文!

导师推荐10个AI论文平台&#xff0c;助你搞定本科生毕业论文&#xff01; AI 工具如何助力论文写作&#xff1f; 在当前的学术环境中&#xff0c;越来越多的学生开始借助 AI 工具来提升论文写作的效率和质量。尤其是在面对毕业论文这一重要任务时&#xff0c;合理利用 AI 技术不…

导师严选9个AI论文工具,继续教育学生轻松搞定论文写作!

导师严选9个AI论文工具&#xff0c;继续教育学生轻松搞定论文写作&#xff01; AI 工具助力论文写作&#xff0c;高效又省心 在当今学术研究日益数字化的背景下&#xff0c;AI 工具正逐渐成为学生和科研工作者不可或缺的得力助手。尤其对于继续教育领域的学习者来说&#xff0c…

编译(二):class、dex、so 编译流程

编译&#xff08;一&#xff09;&#xff1a;理论知识 编译&#xff08;二&#xff09;&#xff1a;class、dex、so 编译流程 Class 流程 加载&#xff1a;查找和导入类的二进制数据链接&#xff1a;执行验证&#xff0c;准备和&#xff08;可选&#xff09;解析 验证&#x…

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

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

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

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

【好写作AI】实验猿的福音:把跑胶写Paper的时间,从“半年刊”变成“周更”

好写作AI官方网址&#xff1a;https://www.haoxiezuo.cn/一、医学生的日常&#xff1a;你的时间都去哪了&#xff1f;文献PubMed一搜&#xff0c;3871条结果&#xff0c;筛到第50篇时&#xff0c;实验细胞都快长满皿了…写方法部分时&#xff0c;大脑在“精密操作”和“小学生作…

sudo reboot的庖丁解牛

sudo reboot 是 Linux 系统中 以超级用户权限触发系统重启 的命令。它看似简单&#xff0c;但背后涉及 权限模型、关机流程、系统安全 三大机制。一、命令拆解部分作用sudo临时提升权限&#xff08;以 root 身份执行&#xff09;reboot触发系统重启&#xff08;调用 systemctl …