C#文件搜索实例

原创 2007年10月02日 15:49:00

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#实现本地文件搜索功能

  • 2017年02月14日 11:13
  • 69KB
  • 下载

一个输入指定盘符和文件名检索文件存在路径的c#程序

0.1版本 using System; using System.IO; namespace FileSearch { class Program { public static void M...
  • qq_29866551
  • qq_29866551
  • 2016年05月26日 18:09
  • 1425

C# 遍历文件夹及其子文件夹来查找某个文件

DirectoryInfo dir = new DirectoryInfo(@"D:\VS2012Project\测试用例\");             foreach (FileInfo fil...
  • zjx19881002
  • zjx19881002
  • 2015年08月04日 22:42
  • 570

c#查找文件

       private void button1_Click(object sender, EventArgs e)        {            FindFile(@"/SDMMC"...
  • dadahacker
  • dadahacker
  • 2009年07月10日 18:23
  • 5293

C# Windows-API-Code-Pack for .Net

官方源代码以及API文档的Git地址:https://github.com/aybe/Windows-API-Code-Pack-1.1 以Windows API Code Pack-Core引用为例...
  • u011127019
  • u011127019
  • 2016年10月01日 18:29
  • 1522

Access利用Windows API打开文件对话框

Option Explicit*------------------------------------------------------------------------* Purpose: 声...
  • JianZhiZG
  • JianZhiZG
  • 2006年12月19日 22:14
  • 2593

如何使用C\C++实现文件的检索 ?

//要求: //1.列出一个文件夹 //2.列出该文件夹下的子文件夹的名称,文件的名称及大小。 #include #include #include using namespace std; ...
  • qq_16542775
  • qq_16542775
  • 2016年08月25日 13:30
  • 1717

c++文件搜索 查找

  • 2010年04月02日 21:44
  • 567KB
  • 下载

winform写的搜索文件目录小程序

这个是我写的第一个版本,控制台程序 一个输入指定盘符和文件名检索文件存在路径的c#程序 0.2版本 程序代码 Program.cs using System; using System.I...
  • qq_29866551
  • qq_29866551
  • 2016年05月27日 21:47
  • 631

C#文件搜索

C#遍历指定文件夹中的所有文件 DirectoryInfo TheFolder=new DirectoryInfo(folderFullName); //遍历文件夹 foreach(Direc...
  • typhoonwang
  • typhoonwang
  • 2016年04月22日 11:28
  • 133
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#文件搜索实例
举报原因:
原因补充:

(最多只允许输入30个字)