C#,简单,精巧,实用的按类型删除指定文件的工具软件

点击下载本文软件(积分):

https://download.csdn.net/download/beijinghorn/89059141icon-default.png?t=N7T8https://download.csdn.net/download/beijinghorn/89059141

下载审核通过之前,请从百度网盘下载(无积分):

https://pan.baidu.com/s/1P-UCB9MfUwA0L7JVAqPCWQ?pwd=dgw8icon-default.png?t=N7T8https://pan.baidu.com/s/1P-UCB9MfUwA0L7JVAqPCWQ?pwd=dgw8

1 功能介绍

按文件类型删除指定文件夹及其全部各级子目录内文档的工具软件;

程序员或非程序员每天需处理大量的文件,其中有很多实际上不需要长期保存或每天备份的垃圾级别的文件,因而需要一个工具能够按类别一次性删除这些文件。

基本功能是:

(1)搜索并统计、显示指定文件夹及其全部各级子目录内文档的数量,最小最大字节数,总字节数数;

(2)简便方式选择以指定删除的文件类型;

(3)一键删除选定类型的文件,DFS深度递归模式自动检索全部各级别子目录;

(4)可选定删除空文件夹;

(5)能适配空后缀类型文件;

(6)比较强的权限与容错机制;

2 欢迎界面

3 文件检索界面

选择删除的文件类型

删除之后,自动重新检索并统计。

可一键启用上次的选择。

4 部分源代码


/// <summary>
/// 表格显示文件数、最小最大、字节数及选择删除
/// </summary>
private string ShowFileSummary()
{
    StringBuilder sb = new StringBuilder();
    #region HTML 头部css
    sb.AppendLine("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
    sb.AppendLine("<html xmlns=\"http://www.w3.org/1999/xhtml\" >");
    sb.AppendLine("<head>");
    sb.AppendLine("<meta charset=\"UTF-8\">");
    sb.AppendLine("<style>");

    sb.AppendLine("* { font-family:Consolas,微软雅黑; }");

    sb.AppendLine("html,body { -webkit-text-size-adjust:none;padding:0px;background-color:#FFFF00; }");
    sb.AppendLine("input { font-size:15px; }");
    sb.AppendLine("img { cursor:pointer;border:0px;}");
    sb.AppendLine("table { border-collapse:collapse;font-size:15px; }");
    sb.AppendLine("td { padding:5px; } ");

    sb.AppendLine("input { padding:3px; }");
    sb.AppendLine("input[type=\"checkbox\"] { margin-right:5px;padding:0;width:17px;height:17px;cursor:pointer; }");
    sb.AppendLine("input[type=\"checkbox\"]:checked+label { color:#AA0000; }");
    sb.AppendLine("input[type=\"checkbox\"]+label { cursor:pointer;color:#000000;font-size:14px;margin-right:10px;padding-top:1px; }");
    sb.AppendLine("input[type=\"checkbox\"]+label:hover { cursor:pointer;color:#AA0000; }");
    sb.AppendLine("input,label { vertical-align:middle; }");

    sb.AppendLine(".r1 { background-color:#E1EFBA; }");
    sb.AppendLine(".r1:hover { background-color:#FFFFFF;font-weight:bold;border:dashed 1px #daac31;cursor:pointer; }");
    sb.AppendLine(".r2 { background-color:#EFFCCD; }");
    sb.AppendLine(".r3 { background-color:#86AA0C;color:#FFFFFF;}");
    sb.AppendLine(".r4 { background-color:#EFF8DB; }");
    sb.AppendLine(".r4:hover { background-color:#FFFFFF;font-weight:bold;border:dashed 1px #daac31;cursor:pointer; }");
    sb.AppendLine(".r5 { background-color:#EFF8DB;height:31px; }");
    sb.AppendLine(".r5:hover { background-color:#FFFFFF;font-weight:bold;border:dashed 1px #daac31;cursor:pointer; }");

    sb.AppendLine("</style>");
    sb.AppendLine("</head>");
    sb.AppendLine("<body oncontextmenu=\"return false\" ondragstart=\"return false\" onbeforecopy=\"return false\" oncopy=\"document.selection.empty()\" onselect=\"document.selection.empty()\" onselectstart=\"return false\">");
    #endregion

    sb.AppendLine("<table width='100%' border=1 bordercolor='#AAAAEE'>");
    sb.AppendLine("<tr class='r3'>");
    sb.AppendLine("<td>No.</td>");
    sb.AppendLine("<td>Extention</td>");
    sb.AppendLine("<td style='text-align:right;'>files</td>");
    sb.AppendLine("<td style='text-align:right;'>min-max</td>");
    sb.AppendLine("<td style='text-align:right;'>bytes</td>");
    sb.AppendLine("<td></td>");
    sb.AppendLine("</tr>");
    int idx = 0;
    int count = 0;
    long total = 0;
    foreach (ClassInfo fx in classes)
    {
        sb.AppendLine("<tr class=r5>");
        sb.AppendLine("<td>" + (idx + 1) + "</td>");
        sb.AppendLine("<td>" + (fx.Extention == zero_extention ? "." : fx.Extention) + "</td>");
        sb.AppendLine("<td style='text-align:right;'>" + fx.Count + "</td>");
        if (fx.Min == fx.Max)
            sb.AppendLine("<td style='text-align:right;'>" + ConvertFileSize(fx.Min) + "</td>");
        else
            sb.AppendLine("<td style='text-align:right;'>" + ConvertFileSize(fx.Min) + " - " + ConvertFileSize(fx.Max) + "</td>");
        sb.AppendLine("<td style='text-align:right;'>" + ConvertFileSize(fx.Length) + "</td>");
        sb.Append("<td style='text-align:center;'>");
        sb.Append("<input ");
        sb.Append("type='checkbox'");
        sb.Append("id='ext_" + idx + "' ");
        sb.Append("name='ext_" + idx + "' ");
        sb.Append("value='" + fx.Extention + "'");
        sb.Append(">");
        sb.Append("<label for='ext_" + idx + "'>del</label>");
        sb.Append("</td>");
        sb.AppendLine("</tr>");
        count += fx.Count;
        total += fx.Length;
        idx++;
    }
    sb.AppendLine("<tr class='r3'>");
    sb.AppendLine("<td>No.</td>");
    sb.AppendLine("<td>Extention</td>");
    sb.AppendLine($"<td style='text-align:right;'>{count} files</td>");
    sb.AppendLine("<td></td>");
    sb.AppendLine($"<td style='text-align:right;'>{ConvertFileSize(total)}</td>");
    sb.AppendLine("<td></td>");
    sb.AppendLine("</tr>");
    sb.AppendLine("</table>");

    sb.AppendLine("</body>");
    sb.AppendLine("</html>");

    return sb.ToString();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/515784.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Canvas背景绘制-24

本节会详细介绍下&#xff0c;如何绘制面板的背景。 概述 常用的技术称为图块复制(blitting)&#xff0c;即从离屏缓冲区中将内容发生变化的那部分背景图像复制到屏幕上&#xff0c;还有其它两种方法是将所有内容擦除并重新绘制&仅重绘内容发生变化的那部分区域。一般是用…

解决Vue中仓库持久化的问题,不借助插件用原生JS实现仓库持久化。了解仓库的插件机制、监听的时机

1、演示 前言&#xff1a;目前Vue有两种仓库&#xff0c;一种是Vuex&#xff0c;一种是Pinia&#xff0c;懂得都懂&#xff0c;这里就不详细介绍这两者的区别了 2、什么是持久化 仓库里面的数据是需要跨越页面周期的&#xff0c;当页面刷新之后数据还在&#xff0c;在默认情况下…

PHP在线加密系统网站源码

源码介绍 PHP在线加密系统网站源码&#xff0c;这个是sg的加密,免费可用(目前)并不会收费 源码说明&#xff1a;下载直接上传即可 下载地址 蓝奏云下载&#xff1a;https://wfr.lanzout.com/i6c331togiji

MySQL 索引底层探索:为什么是B+树?

MySQL 索引底层探索&#xff1a;为什么是B树&#xff1f; 1. 由一个例子总结索引的特点2. 基于哈希表实现的哈希索引3. 高效的查找方式&#xff1a;二分查找4. 基于二分查找思想的二叉查找树5. 升级版的BST树&#xff1a;AVL 树6. 更加符合磁盘特征的B树7. 不断优化的B树&#…

常见的四种限流算法及基础实现

常见的四种限流算法及基础实现 什么是限流有哪些限流算法&#xff1f;限流算法固定窗口滑动窗口漏桶算法令牌算法 什么是限流 限流是对某一时间窗口内的请求数进行限制&#xff0c;保持系统的可用性和稳定性&#xff0c;防止因流量暴增而导致的系统运行缓慢或宕机。 在高并发…

基于SpringBoot+uniapp的同城活动报名系统开发找搭子软件

项目背景 随着移动互联网的飞速发展&#xff0c;人们的社交方式也在不断变化。在这个大背景下&#xff0c;同城活动报名系统应运而生&#xff0c;成为了连接人与人、活动与人之间的桥梁&#xff0c;深受广大年轻人的喜爱。在这个充满机遇与挑战的时代&#xff0c;同城活动报名…

GDPU 竞赛技能实践 天码行空6

&#x1f4d6; 敌兵布阵 C国的死对头A国这段时间正在进行军事演习&#xff0c;所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段&#xff0c;所以每个工…

Flume 拦截器概念及自定义拦截器的运用

文章目录 Flume 拦截器拦截器的作用拦截器运用1.创建项目2.实现拦截器接口3.编写事件处理逻辑4.拦截器构建5.打包与上传6.编写配置文件7.测试运行 Flume 拦截器 在 Flume 中&#xff0c;拦截器&#xff08;Interceptors&#xff09;是一种可以在事件传输过程中拦截、处理和修改…

Linux网络协议栈从应用层到内核层④

文章目录 1、网卡接受数据2、网络设备层接收数据3、ip层接受数据4、tcp层接受数据5、上层应用读取数据6、数据从网卡到应用层的整体流程 1、网卡接受数据 当网卡收到数据时&#xff0c;会触发一个中断&#xff0c;然后就会调用对应的中断处理函数&#xff0c;再做进一步处理。…

python相对路径导包与绝对路径导包的正确方式

【python相对路径导包与绝对路径导包的正确方式】 python相对路径导包与绝对路径导包的正确方式_哔哩哔哩_bilibilipython导包的难题&#xff0c;今天解决了&#xff0c;相对路径导包和绝对路径导包&#xff0c;均可以&#xff01;&#xff01;&#xff01;, 视频播放量 5、弹…

如何(关闭)断开 Websocket 连接:简单易懂的实现指南

WebSocket 协议提供了一条用于 Web 应用程序中双向通讯的高效通道&#xff0c;让服务器能够实时地向客户端发送信息&#xff0c;而无需客户端每次都发起请求。本文旨在探讨有关结束 WebSocket 连接的适当时机&#xff0c;内容包括协议的基础知识、如何结束连接、一些使用场景&a…

maven本地仓库设置

1、背景 我们在本地安装好maven后&#xff0c;java环境也安装好了以后&#xff0c;运行java项目A,我希望把项目A所有的依赖安装在我电脑中的a文件夹下&#xff0c;项目B安装在我电脑的b文件夹下。 2、解决 需要在 maven 文件中找到 conf 文件夹下的 settings.xml 文件进行修…

Unity | Shader基础知识(第十一集:什么是Normal Map法线贴图)

目录 前言 一、图片是否有法线贴图的视觉区别 二、有视觉区别的原因 三、法线贴图的作用 四、信息是如何存进去的 五、自己写一个Shader用到法线贴图 六、注意事项 七、作者的话 前言 本小节会给大家解释&#xff0c;什么是法线贴图&#xff1f;为什么法线贴图会产生深…

SpringBoot -- 外部化配置

我们如果要对普通程序的jar包更改配置&#xff0c;那么我们需要对jar包解压&#xff0c;并在其中的配置文件中更改配置参数&#xff0c;然后再打包并重新运行。可以看到过程比较繁琐&#xff0c;SpringBoot也注意到了这个问题&#xff0c;其可以通过外部配置文件更新配置。 我…

前端三剑客 —— CSS (上)

上节内容中提到了 前端三剑客 —— HTML 超文本标记语言&#xff0c;这节内容 跟大家讲述三剑客中的第二个 CSS。 CSS 什么是CSS Cascading Style Sheel&#xff0c;简称CSS&#xff0c;中文叫层叠样式表&#xff0c;也叫级联样式表。主要作用是来修饰HTML页面的一种技术。 …

【C++学习】哈希表的底层实现及其在unordered_set与unordered_map中的封装

文章目录 1. unordered系列关联式容器1.1 unordered_map1.2 unordered_set1.3.底层结构 2.哈希2.1哈希概念2.2哈希冲突2.3 哈希函数2.4 哈希冲突解决2.4.1闭散列2.4.1开散列2.5开散列与闭散列比较 3.哈希的模拟实现1. 模板参数列表2. 迭代器的实现3. 增加通过key获取value操作4…

66toolkit终极网络工具系统:470+强大Web工具,助力您的网络运营与开发

一、产品介绍 66toolkit&#xff0c;被誉为“终极网络工具系统”&#xff08;SAAS&#xff09;&#xff0c;是一款功能强大的PHP脚本。它集合了超过470种快速且易用的Web工具&#xff0c;为日常任务处理和开发人员提供了极大的便利。作为一款综合性的网络工具系统&#xff0c;…

面试题目--fork

问题&#xff1a; (1)fork 以后&#xff0c;父进程打开的文件指针位置在子进程里面是否一样&#xff1f;(先open再fork) (2)能否用代码简单的验证一下? (3)先fork再打开文件父子进程是否共享偏移量?父进程打开的文件指针位置在子进程里面是否一样&#xff1f;能否用代码简…

武汉星起航:引领亚马逊孵化新篇章,助力合作伙伴共创商业辉煌

武汉星起航电子商务有限公司自2020年成立以来&#xff0c;凭借其敏锐的市场洞察和深度合作模式&#xff0c;在跨境电商领域取得了显著的成绩。为了进一步满足市场需求&#xff0c;公司决定推出亚马逊一站式孵化平台&#xff0c;为合作伙伴提供更全面的指导和支持。 该孵化平台…

【办公类-47-01】20240404 Word内部照片批量缩小长宽(课题资料系列)

作品展示 背景需求 最近在做《运用Python优化3-6岁幼儿学习操作材料的实践研究》的课题研究资料&#xff08;上半学期和下半学期&#xff09;。 将CSDN里面相关的研究照片文字贴入Word后&#xff0c;就发现一张图片就占了A4竖版一页&#xff0c;太大了。我想把word里面的所有…