如何获得特定文件夹下的所有文件的文件名?急!

mirroryuri 2005-07-03 11:50:05
我想获得某个文件夹下的所有文件的文件名?是不是要用win32 api啊?怎么做?谢谢c#大师相告!
...全文
501 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bye1980 2006-01-10
  • 打赏
  • 举报
回复

o
老戴12345654 2005-07-03
  • 打赏
  • 举报
回复
递归实现查找目录下的所有子目录和文件

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;
老戴12345654 2005-07-03
  • 打赏
  • 举报
回复
不用 使用FileInfo类就OK了
参考:
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++)
{
Response.Write(files[i].ToString() + "<br>");
//this.listBoxC.Items.Add(files[i].ToString());
}
}
catch(Exception ex)
{

}
}


renyu732 2005-07-03
  • 打赏
  • 举报
回复
如果想获得所有的文件的话,将articleList.DataSource = dirInfo.GetFiles("*.aspx")
改为
articleList.DataSource = dirInfo.GetFiles("*.*")

就可以了.
wuyi8808 2005-07-03
  • 打赏
  • 举报
回复
class GetFiles
{
static void Main()
{
string [] files = System.IO.Directory.GetFiles(".");
foreach (string file in files)
{
System.Console.WriteLine(file);
}
}
}
renyu732 2005-07-03
  • 打赏
  • 举报
回复
.NET Framework提供两个访问目录信息的类和两个访问文件信息的类,钥访问目录,可以使用Directory类,也可以使用DirectoryInfo类,对应于文件,也有File类和FileInfo类。这两个类之间的区别在于返回的信息和使用的方法不同。Directory和File类属于静态类,在使用时你不必创建实例,例如:要删除文件,可以File.Delete(filePath),要检测文件夹是否存在可以Directory.Exists(directoryPath)。而带Info的类在使用时必须先进行实例化,并在构造函数里指名文件名字或者目录名字,因此,删除文件可以用Dim myFile as File = New File(filePath),myFile.Delete()。

这两个类都提供了得到一个文件夹下的所有文件或者某种扩展名的文件的方法,即GetFiles()。

' --- Directory 例子 ----
Dim files() as String = Directory.GetFiles(directoryPath[, optionalWildCard])

' --- DirectoryInfo 例子 ----
Dim myDir as DirectoryInfo = New DirectoryInfo(directoryPath)
Dim fileInfos() as FileInfo = myDir.GetFiles([optionalWildCard])

值得注意的是,两者返回的类型是不同的,一个是String类型的数组,另外一个是FileInfo类型的数组。下面就是绑定的方法:

VB.NET

<%@ Import Namespace="System.IO" %>
<script language="VB" runat="server">
Sub Page_Load(sender as Object, e as EventArgs)
Dim dirInfo as New DirectoryInfo(Server.MapPath(""))
articleList.DataSource = dirInfo.GetFiles("*.aspx")
articleList.DataBind()
End Sub
</script>

<asp:DataGrid runat="server" id="articleList" Font-Name="Verdana"
AutoGenerateColumns="False" AlternatingItemStyle-BackColor="#eeeeee"
HeaderStyle-BackColor="Navy" HeaderStyle-ForeColor="White"
HeaderStyle-Font-Size="15pt" HeaderStyle-Font-Bold="True">
<Columns>
<asp:HyperLinkColumn DataNavigateUrlField="Name" DataTextField="Name"
HeaderText="文件名" />
<asp:BoundColumn DataField="LastWriteTime" HeaderText="最后修改时间"
ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<asp:BoundColumn DataField="Length" HeaderText="文件大小"
ItemStyle-HorizontalAlign="Right"
DataFormatString="{0:#,### 字节}" />
</Columns>
</asp:DataGrid>

renyu732 2005-07-03
  • 打赏
  • 举报
回复
System.IO提供有.
fish__net 2005-07-03
  • 打赏
  • 举报
回复
你试试 Directory.GetFiles("文件夹路径")
mirroryuri 2005-07-03
  • 打赏
  • 举报
回复
问题终于解决了,谢谢大家哦!
zeusvenus 2005-07-03
  • 打赏
  • 举报
回复
应该是用System.IO里面的某个类来实现吧,楼主找找.

110,534

社区成员

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

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

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