Directory类 写一个递归方法
遍历所有文件
在遍历的过程中判断文件后缀
留下你想要的信息
遍历所有文件
在遍历的过程中判断文件后缀
留下你想要的信息
解决方案 »
- 向高人请教,一个发送XML的问题
- 计算量大,未响应问题,如何解决?(C# winform)
- webBrowser使用的问题,谢谢
- 谁用过扫条形码的那个机器,问个接受的问题
- 高手看!asp.net页面中如何执行其他程序页面?
- 从一个自定义控件继承的自定义控件会出现显示问题,难道是个BUG?
- 各位大侠,如何用jmail接收附件啊???急急急!!!
- asp.net及c#中如何实现多语功能,像java中的resource文件一样?
- execl中档一个sheet里有两张表格的时候应该如何用c#读取
- 关于c# GridView索引范围超出异常
- C#Winform,有参数的程序如何无参启动
- EXCEL读取格式与丢失数据问题
{
DirectoryInfo Dir = new DirectoryInfo(pathstr);
try
{//textBox1为基础文件夹,textBox2为文件的扩展名
foreach (DirectoryInfo d in Dir.GetDirectories())
{
FindFile(Dir+d.ToString()+"\\");
richTextBox1.AppendText(Dir + d.ToString() + "\\");
richTextBox1.AppendText("\n");
}
foreach (FileInfo f in Dir.GetFiles("*."+textBox2.Text))
{
richTextBox1.AppendText(Dir+f.ToString());
richTextBox1.AppendText("\n");
}
}
catch
{
}
}
textbox2.text是文件格式,希望对你有用
{
DirectoryInfo[] dinfo;
FileInfo[] finfo;
DirectoryInfo directoryinfo;
MenuItem _menuItemFolder;
MenuItem _menuItemFile; //当前路径下信息
directoryinfo=new DirectoryInfo(_strPath);
//文件夹信息
dinfo= directoryinfo.GetDirectories();
//当前路径下所有文件
finfo =directoryinfo.GetFiles(@"*."+this.strFileType); if(finfo.Length==0)//若当前路径下不存在文件
{
}
else//若当前路径下存在文件
{
for(int j=0;j<finfo.Length;j++)
{
//this.listBox1.Items.Add(finfo[j].FullName);
_menuItemFile=new MenuItem(System.IO.Path.GetFileName(finfo[j].FullName));
_menuItemFile.Click+=new EventHandler(OpenFile);
//_menuItemFile.
//menuItemParent.MenuItems.Add(new MenuItem(System.IO.Path.GetFileName(finfo[j].FullName)));
menuItemParent.MenuItems.Add(_menuItemFile);
}
}
//当前路径下所有文件夹
if(dinfo.Length==0)//若当前目录路径下不存在下属文件夹
{ }
else
{
//this.intDepthPosition++;
//if(this.intDepthPosition<this.intFindDepth+1)
//{
for(int i=0;i<dinfo.Length;i++)
{
//_menuItemFolder=new MenuItem(System.IO.Path.GetDirectoryName(dinfo[i].FullName));
_menuItemFolder=new MenuItem(dinfo[i].FullName.Replace(_strPath,"").Replace(@"\",""));
menuItemParent.MenuItems.Add(_menuItemFolder);
this.FindFiles(dinfo[i].FullName,_menuItemFolder);
}
}
}
FileInfo[] fis = di.GetFiles("*.txt", SearchOption.AllDirectories);
foreach (FileInfo fi in fis)
{
MessageBox.Show(fi.Name);
}
可以用Directory.GetFiles(path,"*.txt",SearchOption.AllDirectories)
Application.DoEvents();这是从VB那里学来的。
这个是用来做什么呢?
class Class1
{
public void GetFiles(string path)
{
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(path); // 使用递归检索子目录
System.IO.DirectoryInfo[] subdirs = dir.GetDirectories();
foreach (System.IO.DirectoryInfo subdir in subdirs)
{
this.GetFiles(subdir.FullName);
} // 检索目录下的文件
System.IO.FileInfo[] fis = dir.GetFiles("*.txt");
foreach (System.IO.FileInfo fi in fis)
{
Console.WriteLine(fi.Name);
}
} /// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
new Class1().GetFiles(@"c:\");
Console.ReadLine();
}
}UI假死的话解决办法一般都是把这些操作放到线程中执行
Application.DoEvents();
加了还是会死啊,现在总UI假死啊,郁闷的很哦请问一下2005里的sleep在2003中是什么东东呢?
{
System.IO.DirectoryInfo aa = new System.IO.DirectoryInfo(strDir);
if (aa.GetDirectories().GetLength(0) > 0)
{
foreach (System.IO.DirectoryInfo d in aa.GetDirectories())
{
Application.DoEvents();
System.IO.FileInfo[] fi = GetFile(d.FullName);
foreach (System.IO.FileInfo f in fi)
{
Application.DoEvents();
listView1.Items.Add(f.Name);
}
}
}
return aa.GetFiles();
}这个是获取指定目录下所有文件名的代码,测试过不会死机.关键是每个循环都用Application.DoEvents();如果按楼主所说,只要列出本机的所有驱动器,然后将驱动器分别调用这个函数,然后在listView1.Items.Add(f.Name);之前判断扩展名是否楼主所需要的就行了.在2.0测试通过.