C#文件搜索实例
来源:互联网 发布:交换机网络克隆 h3c 编辑:程序博客网 时间:2024/04/30 05:51
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.InteropServices;
namespace SearchExample
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private const int WM_VSCROLL = 0x115;
private const int SB_BOTTOM = 7;
[DllImport("user32")]
private extern static int SendMessage(int hWnd, int wMsg, int wParam, int lParam);
private void cmdSearch_Click(object sender, EventArgs e)
{
if (Directory.Exists(textPath.Text))
{
lvFiles.Items.Clear();
cmdSearch.Enabled = false;
textPath.Enabled = false;
cmdBrowser.Enabled = false;
ListViewItem item = new ListViewItem();
int sum = 0;
string[] rootFiles = Directory.GetFiles(textPath.Text);
foreach (string rootfile in rootFiles)
{
if (sum % 10 == 0) Application.DoEvents();
FileInfo fileInfo = new FileInfo(rootfile);
item = lvFiles.Items.Add(fileInfo.Name);
item.SubItems.AddRange(new string[] { rootfile, fileInfo.Length.ToString(), "文件" });
}
SearchAllFiles(textPath.Text);
cmdSearch.Enabled = true;
textPath.Enabled = true;
cmdBrowser.Enabled = true;
SendMessage(lvFiles.Handle.ToInt32(), WM_VSCROLL, SB_BOTTOM, 0);
}
else
{
MessageBox.Show("请选择需要搜索的路径!!");
}
}
private void SearchAllFiles(string strPath)
{
ListViewItem item = new ListViewItem();
int sum = 0;
string[] folders = Directory.GetDirectories(strPath);
foreach(string folder in folders)
{
if (sum % 10 == 0) Application.DoEvents();
sum += 1;
DirectoryInfo folderInfo = new DirectoryInfo(folder);
item = lvFiles.Items.Add(folderInfo.Name);
item.SubItems.AddRange(new string[]{folder,"0","目录"});
string[] files = Directory.GetFiles(folder);
foreach (string file in files)
{
if (sum % 10 == 0) Application.DoEvents();
sum += 1;
FileInfo fileInfo = new FileInfo(file);
item = lvFiles.Items.Add(fileInfo.Name);
item.SubItems.AddRange(new string[] { file, fileInfo.Length.ToString(), "文件" });
}
SearchAllFiles(folder);
}
}
private void cmdFolderCount_Click(object sender, EventArgs e)
{
int sum=0;
for (int i = 0; i < lvFiles.Items.Count; i++)
{
if (lvFiles.Items[i].SubItems[3].Text == "目录")
{
sum += 1;
}
}
MessageBox.Show("目录数为: " + sum.ToString());
}
private void cmdFileCount_Click(object sender, EventArgs e)
{
int sum = 0;
for (int i = 0; i < lvFiles.Items.Count; i++)
{
if (lvFiles.Items[i].SubItems[3].Text == "文件")
{
sum += 1;
}
}
MessageBox.Show("文件数为: " + sum.ToString());
}
private void cmdExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void cmdBrowser_Click(object sender, EventArgs e)
{
folderBrowser.Description = "请选择需要搜索的文件路径!!";
folderBrowser.ShowDialog();
textPath.Text = folderBrowser.SelectedPath;
}
}
}
- C#文件搜索实例
- C#文件搜索实例
- C# 文件搜索
- C#文件搜索代码
- C# 搜索文件目录
- C#文件搜索
- C#文件读写实例
- C#实现硬盘文件搜索
- C#文件搜索小程序
- C#读写xml文件实例
- C#读写xml文件实例
- C# ini文件读写 实例
- C# ini文件读写 实例
- c#读写xml文件(实例)
- C# Ini文件操作实例
- C#文件读写操作实例
- C#做文件內容搜索
- C# 下获取搜索的文件
- JNative使用,调用动态库
- 第一次
- SDL 图像
- php注入
- 怎样在myeclipse 中加载javadoc
- C#文件搜索实例
- c# 流的概念以及一个操作文本文件的实例代码
- SILVERLIGHT的价值所在
- 微软技术通 1.0 beta
- 微软技术通 1.0 beta 全部命令列表
- 微软技术通 1.0 beta 使用小贴士1
- 纯属个人日志-开始
- 自学.NET之路-C#编程之基础总结
- 技巧 Html元素的动态添加方法