打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
批量删除文件夹下包含指定字段的文件
littlestone
>《DotNet》
2012.08.10
关注
批量删除文件夹下包含指定字段的文件
分类:
C#
2010-11-12 13:44
362人阅读
评论
(0)
收藏
举报
[c-sharp:nogutter]
view plain
copy
print
?
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);
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
【热】
打开小程序,算一算2024你的财运
Dynamics 365新功能:可编辑的网格(行内编辑)
c#文件操作
C#IO流详解转载
浅析C#中的文件操作
C#读写txt文件的两种方法介绍
Unity3D中C#使用StreamReader类读取文件 | Unity3D教程手册
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×