搜索文件(2)实现过程

二、实现过程

(1)创建一个项目,将其命名为serchfile,默认窗体为Form1.

(2)在Form1窗体中添加2个Label控件、1个Button控件用于搜索,2个TextBox控件用于输入,添加1个ListView控件用来显示文件的详细信息。

(3)编辑ListView控件。选择ListView1控件的【Colums】属性,弹出ColumnHeader集合编辑器对话框。

点击【添加】按键,添加columnHeader1、columnHeader2、columnHeader3和columnHeader4共4个成员,并编辑其属性下图所示:

 

columnHeader1

columnHeader2

columnHeader3

columnHeader4

Text

文件名

路径

大小

创建日期

TextAlign

Left

Center

Center

Center

Width

100

180

60

180

(4)代码如下:

private void btnSearch_Click(object sender, EventArgs e)

{

listView1.Items.Clear();//清空listview1中的内容,仍然保存着listviewitem项的结构,即listview有多

//列,每列可能对应的列标题数据等。

if (textBox1.Text.Trim()==string.Empty)//判断textbox1中的内容是否为空的

{

MessageBox.Show("请输入查找的文件的关键字!","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Stop);

//显示一个消息框,该消息框包含消息“请输入查找的文件的关键字!”、标题栏标题"系统提示"、

//按钮为“确定”和图标“停止图标”,并且返回结果。

textBox1.Focus();//可以把光标停在要停的某个文本框

return;

}

if (textBox2.Text.Trim() == string.Empty)

{

MessageBox.Show("请输入查找的目录名称!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);

textBox2.Focus();

return;

}

SerachFile(textBox2.Text);

// MessageBox.Show("搜索完毕");

}

#endregion

 

#region 搜索方法

public void SerachFile(string fileDirectory)

{

DirectoryInfo dir = new DirectoryInfo(fileDirectory);//创建一个类,要传递的参数为fileDirectory

DirectorySecurity sec = new DirectorySecurity(fileDirectory, AccessControlSections.Access);

if (!sec.AreAccessRulesProtected)//判断文件夹的访问权限。DirectorySecurity .AreAccessRulesProtected,//获取一个布尔值,用于指定与 ObjectSecurity 对象关联的自定义访问控制列表 (DACL) 是否受到保护。

{

FileSystemInfo[] f = dir.GetFileSystemInfos();//FileSystemInfo 类,为 FileInfo 和 DirectoryInfo 对象//提供基类。FileSystemInfo[],强类型FileSystemInfo项的数组。DirectoryInfo.GetFileSystemInfos 方法方//法取得目录中所有子目录和文件的强类型

foreach (FileSystemInfo i in f)

{

if (i is DirectoryInfo)//如果i是一个目录

{

SerachFile(i.FullName);//递归处理,再次调用searchfile,直到找到根目录的文件

}

else

{

if (i.Name.ToUpper().Contains(textBox1.Text.Trim().ToUpper()))//分别将最终根目录下的文件名转换成大//写字母,将textbox1中的内容转换成大写字母判断根目录下的文件名是否含有textbox1中的字符

{

FileInfo fin = new FileInfo(i.FullName);

listView1.Items.Add(fin.Name);//为ListView第一列添加文件名

listView1.Items[listView1.Items.Count - 1].SubItems.Add(fin.FullName);//为ListView第二列添加文件路//径

listView1.Items[listView1.Items.Count - 1].SubItems.Add(fin.Length.ToString());//为ListView第三列添//加文件大小

listView1.Items[listView1.Items.Count - 1].SubItems.Add(fin.CreationTime.ToString());//为ListView第//四列添加文件创建日期

}

}

}

}

}

#endregion

 

当没有输入目录时,点击搜索,结果如下图所示。

当没有输入文件时,点击搜索,结果如下图所示。

正常搜索,结果如下图所示。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器人自动化控制

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值