找子目录可以这样做:
递归实现查找目录下的所有子目录和文件
引用: http://topic.csdn.net/t/20050630/18/4115459.html
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
// Only get subdirectories that begin with the letter "p. "
string[] dirs = Directory.GetDirectories(@ "c:\ ", "p* ");
Console.WriteLine( "The number of directories starting with p is {0}. ", dirs.Length);
foreach (string dir in dirs)
{
Console.WriteLine(dir);
}
}
catch (Exception e)
{
Console.WriteLine( "The process failed: {0} ", e.ToString());
}
}
}
取本地目录内的文件名
private void showDirFiles(string strPath)
{
try
{
if (!Directory.Exists(strPath))
{//目录不存在,创建目录
Directory.CreateDirectory(strPath);
}
DirectoryInfo mydir=new DirectoryInfo(strPath);
FileInfo [] files=mydir.GetFiles();
this.listBoxC.Items.Clear();//清楚listbox中现有项目
for(int i=0;i <files.Length;i++)
{
this.listBoxC.Items.Add(files[i].ToString());
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
递归实现查找目录下的所有子目录和文件
public void FindFile(string dir) //参数为指定的目录
{
//在指定目录及子目录下查找文件,在listBox1中列出子目录及文件
DirectoryInfo Dir=new DirectoryInfo(dir);
try
{
foreach(DirectoryInfo d in Dir.GetDirectories()) //查找子目录
{
FindFile(Dir+d.ToString()+ "\\ ");
listBox1.Items.Add(Dir+d.ToString()+ "\\ "); //listBox1中填加目录名
}
foreach(FileInfo f in Dir.GetFiles( "*.* ")) //查找文件
{
listBox1.Items.Add(Dir+f.ToString()); //listBox1中填加文件名
}
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
}
调用
private void button1_Click(object sender, System.EventArgs e)
{
string currentdir= "F:\\myprogram\\C#\\FileSearch "; //搜索的目录
if(currentdir[currentdir.Length-1]!= '\\ ') //非根目录
currentdir+= "\\ ";
FindFile(currentdir); //调用查找文件函数
}
加上 using System.IO;
引用: http://topic.csdn.net/t/20050630/18/4115459.html