代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
批量删除文件夹下包含指定字段的文件
作者:
炎锋
/ 发布于
2016/1/4
/
1017
using System; using System.IO; using System.Text.RegularExpressions; class App { static void Main() { Console.WriteLine("##########################【程序使用说明】############################"); Console.WriteLine("--目 的:本程序用来删除指定文件夹下包含指定字段的文件用--------------"); Console.WriteLine("--第一步:选择要进行处理的文件夹路径(提示:通过左上角进行粘贴)---------"); Console.WriteLine("--第二步:确认是否包含子文件夹文件------------------------------------"); Console.WriteLine("--第三步:输入要文件名匹配的字符串(如果匹配,则该文件将会被删除)-------"); Console.WriteLine("--第四步:确认执行删除操作,下面开始运行程序---------------------------"); Console.WriteLine("######################################################################"); Console.WriteLine("请输入目录名称:"); string strDirectoryName=Console.ReadLine(); DirectoryInfo myDI=new DirectoryInfo(strDirectoryName); //删除文件名包含指定字段的文件前 Console.WriteLine("是否包含子目录?YES | NO :"); string containChildren=Console.ReadLine().Trim(); Console.WriteLine("请输入匹配正则:"); string regStr=Console.ReadLine(); switch(containChildren.ToLower()) { case "yes": Console.WriteLine("删除文件名包含指定字段的文件前文件清单:"); using (StreamWriter w = File.AppendText("log.txt")) { Log ("【删除前】文件名包含指定字段的文件清单:", w); } ShowDirectoryFilesAllLevel(myDI); Console.WriteLine("确认要删除吗?YES | NO :"); if(Console.ReadLine().ToLower()=="yes") { Console.WriteLine("删除文件名与"+regStr+"匹配的文件..."); using (StreamWriter w = File.AppendText("log.txt")) { Log ("【删除】文件名与"+regStr+"匹配的文件:", w); } DeleteFilesAllLevel(myDI,regStr); //删除文件名包含指定字段的文件后 Console.WriteLine("删除文件名包含指定字段的文件后文件清单:"); using (StreamWriter w = File.AppendText("log.txt")) { Log ("【删除后】文件夹下文件清单:", w); } ShowDirectoryFilesAllLevel(myDI); Console.WriteLine("执行完毕!按任意键继续..."); Console.Read(); using (StreamWriter w = File.AppendText("log.txt")) { Log ("【执行完毕!】", w); } break; } else { break; } case "no": Console.WriteLine("删除文件名包含指定字段的文件前文件清单:"); ShowDirectoryFilesOneLevel(myDI); Console.WriteLine("确认要删除吗?YES | NO :"); if(Console.ReadLine().ToLower()=="yes") { Console.WriteLine("删除文件名与"+regStr+"匹配的文件..."); using (StreamWriter w = File.AppendText("log.txt")) { Log ("【删除前】文件名包含指定字段的文件清单:", w); } DeleteFilesOneLevel(myDI,regStr); //删除文件名包含指定字段的文件后 Console.WriteLine("删除文件名包含指定字段的文件后文件清单:"); using (StreamWriter w = File.AppendText("log.txt")) { Log ("【删除后】文件夹下文件清单:", w); } ShowDirectoryFilesOneLevel(myDI); using (StreamWriter w = File.AppendText("log.txt")) { Log ("【执行完毕!】", w); } break; } else { break; } default: Console.WriteLine("输入不正确,请输入单词:yes或No!"); break; } } //获取当前文件夹路径下文件 private static void DeleteFilesOneLevel(DirectoryInfo dir,string regStr) { FileInfo[] myFileInfo=dir.GetFiles(); foreach(FileInfo file in myFileInfo) { Regex regex1=new Regex(regStr); bool b=regex1.IsMatch(file.Name); if(b) { File.Delete(file.FullName); using (StreamWriter w = File.AppendText("log.txt")) { Log (" 删除文件:"+file.Name, w); } } } } private static void ShowDirectoryFilesOneLevel(DirectoryInfo dir) { FileInfo[] myFileInfo=dir.GetFiles(); if(myFileInfo.Length==0) { Console.WriteLine("当前目录下没有文件!"); using (StreamWriter w = File.AppendText("log.txt")) { Log (" 当前目录下没有文件!", w); } } else { foreach(FileInfo file in myFileInfo) { Console.WriteLine(" "+file.Name); using (StreamWriter w = File.AppendText("log.txt")) { Log (" 文件名称:"+file.Name, w); } } } } //递归获取文件夹下文件 private static void DeleteFilesAllLevel(DirectoryInfo dir,string regStr) { DirectoryInfo[] myDirectoryInfo = dir.GetDirectories();//获取子目录的名称 FileInfo[] myFileInfo = dir.GetFiles();//获取文件 if(myFileInfo.Length==0) { Console.WriteLine("当前目录下没有文件!"); using (StreamWriter w = File.AppendText("log.txt")) { Log (" 当前目录下没有文件!", w); } } else { foreach(FileInfo file in myFileInfo) { Regex regex1=new Regex(regStr); bool b=regex1.IsMatch(file.Name); if(b) { File.Delete(file.FullName); using (StreamWriter w = File.AppendText("log.txt")) { Log (" 删除文件:"+file.Name, w); } } } } foreach(DirectoryInfo DirInfo in myDirectoryInfo) { Console.WriteLine("文件夹:"+DirInfo.Name); using (StreamWriter w = File.AppendText("log.txt")) { Log ("文件目录:"+DirInfo.FullName, w); } DeleteFilesAllLevel(DirInfo,regStr); } } private static void ShowDirectoryFilesAllLevel(DirectoryInfo dir) { DirectoryInfo[] myDirectoryInfo = dir.GetDirectories();//获取子目录的名称 FileInfo[] myFileInfo = dir.GetFiles();//获取文件 foreach(FileInfo file in myFileInfo) { Console.WriteLine(" "+file.Name); using (StreamWriter w = File.AppendText("log.txt")) { Log (" 文件名称:"+file.Name, w); } } foreach(DirectoryInfo DirInfo in myDirectoryInfo) { Console.WriteLine("文件夹:"+DirInfo.Name); using (StreamWriter w = File.AppendText("log.txt")) { Log ("文件目录:"+DirInfo.FullName, w); } ShowDirectoryFilesAllLevel(DirInfo); } } public static void Log (String logMessage, TextWriter w) { w.WriteLine("{0} {1}", DateTime.Now.ToString(), logMessage); } }
试试其它关键字
批量删除文件夹
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
炎锋
贡献的其它代码
(
24
)
.
根据 UserAgent 获取浏览器的类型和版本
.
json转换成list map集合
.
遍历目录 获取文件 全路径
.
写入日志和定时删除日志
.
取一个页面的返回值,保存到一个string变量里
.
现代字体栈
.
获取.net框架的安装目录
.
程序开机启动
.
比较两个对象是否相等
.
创建单例winform应用程序
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3