如何得到特定文件夹下的所有文件?

狼王_ 2010-10-20 04:13:08
如题,如要获取D:\test文件夹中的所有文件的文件名。test文件夹中可能有子文件夹,子文件夹中可能还有子文件夹。这该如何得到所有文件的路径和名称啊?
...全文
187 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
whb147 2010-10-26
  • 打赏
  • 举报
回复
用文件夹类遍历即可
嗷嗷叫的老马 2010-10-21
  • 打赏
  • 举报
回复
......路过.
ITzhangweichao 2010-10-20
  • 打赏
  • 举报
回复
学习学习。
guyehanxinlei 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jianshao810 的回复:]
System.IO.Directory.GetFiles("c:\\Test", true)
GetFiles第二个参数是是否递归。
[/Quote]

UP
兔子-顾问 2010-10-20
  • 打赏
  • 举报
回复
今天真晕。。。
foreach (string filepath in Directory.GetFiles(@"e:\try\","*.*", SearchOption.AllDirectories))
{
Console.WriteLine(filepath);
}
xixihaha_2011_098 2010-10-20
  • 打赏
  • 举报
回复
System.IO.Directory.GetFile(@"c:\", "",System.IO.SearchOption.TopDirectoryOnly)
狼王_ 2010-10-20
  • 打赏
  • 举报
回复
这是控制台应用程序的遍历方法,但是还是有点差别。。我想列出所有文件的路径+文件名 如:
D:\ADBEPHSPCS4_LS3\1.txt
D:\ADBEPHSPCS4_LS3\2.txt
D:\ADBEPHSPCS4_LS3\sdf\3.doc
D:\ADBEPHSPCS4_LS3\sdf\1.txt
D:\ADBEPHSPCS4_LS3\ggg\sdf\2.pdf

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string testDir = "e:/try/";
listFiles(testDir, 0);
Console.ReadKey();
}

public static void listFiles(string dir, int level)
{
try
{
//获取文件列表
string[] files = Directory.GetFiles(dir);

String preStr = "";
for (int i = 0; i < level; i++)
{
preStr += " ";
}

foreach (string f in files)
{
if (f.LastIndexOf("\\") == -1)
{
Console.WriteLine(preStr + f.Substring(f.LastIndexOf("/") + 1));
}
else
{
Console.WriteLine(preStr + f.Substring(f.LastIndexOf("\\") + 1));
}

}

//获取目录列表
string[] dirs = Directory.GetDirectories(dir);
foreach (string d in dirs)
{
if (d.LastIndexOf("\\") == -1)
{
Console.WriteLine(preStr + d.Substring(d.LastIndexOf("/") + 1));
}
else
{
Console.WriteLine(preStr + d.Substring(d.LastIndexOf("\\") + 1));
}
if (Directory.Exists(d))
{
listFiles(d, level + 1);
}
}

}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
xb_wang 2010-10-20
  • 打赏
  • 举报
回复
System.IO.Directory.GetFiles("c:\\Test", "",SearchOption.AllDirectories)//搜索操作中包括当前目录和所有子目录

System.IO.Directory.GetFiles("c:\\Test", "",SearchOption.TopDirectoryOnly)//仅在搜索中包括当前目录。

king_wen 2010-10-20
  • 打赏
  • 举报
回复

每天回帖即可获得10分可用分
viprx 2010-10-20
  • 打赏
  • 举报
回复
多google下,别上来就要源码
  • 打赏
  • 举报
回复
遍历文件夹就可以啊、、、

你是C++吗??

C++我可以帮助你解决这个问题。。
solszl 2010-10-20
  • 打赏
  • 举报
回复
jianshao810 2010-10-20
  • 打赏
  • 举报
回复
System.IO.Directory.GetFiles("c:\\Test", true)
GetFiles第二个参数是是否递归。
兔子-顾问 2010-10-20
  • 打赏
  • 举报
回复
。。。
System.IO.Directory.GetFiles("c:\\Test", true)
GetFiles第二个参数是是否递归。
别逗我乐 2010-10-20
  • 打赏
  • 举报
回复
别逗我乐 2010-10-20
  • 打赏
  • 举报
回复
楼主,还是找本书。
肯定是遍历了,
呵呵,我是群里来的。
hb1122 2010-10-20
  • 打赏
  • 举报
回复
递归呀递归,好多地方都得递归(比如TreeView的节点),你得好好学学
狼王_ 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lansecheng 的回复:]
递归就可以实现啊
[/Quote]
这个递归相当蛋疼啊,递归的范围怎么确定啊?
wuyq11 2010-10-20
  • 打赏
  • 举报
回复
public void FindFile(string dir)
{
DirectoryInfo Dir=new DirectoryInfo(dir);
try
{
foreach(DirectoryInfo d in Dir.GetDirectories())
{
FindFile(Dir+d.ToString()+"\\");
}
foreach(FileInfo f in Dir.GetFiles("*.*"))
{

}
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
}


foreach (string dir in System.IO.Directory.GetDirectories("最上级文件夹全路径", "*.*", SearchOption.AllDirectories))
{
System.IO.DirectoryInfo di = new DirectoryInfo(dir);
if (di.GetFiles().Length>0)
{//递归}
}
Tomato88888 2010-10-20
  • 打赏
  • 举报
回复
。。都知道递归啊,具体咋弄给代码。。
加载更多回复(1)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧