C#遍历本地文件和文件夹内的mp3文件

daishunchaoaiqiu 2011-03-19 01:28:35
我自己做了一个播放器,想在“搜索” 按钮事件触发一个搜索本地所有文件和文件夹内的mp3文件放到
ListBox内
另外在做一个progressBar1显示进度和时间
请教大家!
...全文
331 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2011-03-19
  • 打赏
  • 举报
回复
给你的只是一个思路。
yalan 2011-03-19
  • 打赏
  • 举报
回复
搞定,自己最好加个多线程,否则文件太多容易卡死界面使程序暂时停止响应

private void button3_Click(object sender, EventArgs e)
{
//获取本地硬盘驱动器
string[] localDrives = Directory.GetLogicalDrives();
foreach(string eachDrive in localDrives)
{
try
{
//获取逻辑驱动器根目录下的所有exe文件。你用的时候改为*.mp3即可,因为exe文件多测试方便
string[] dirs = Directory.GetFiles(@eachDrive, "*.exe");
foreach (string dir in dirs)
{
richTextBox1.Text += dir + "\n";
}
geteachdir(eachDrive);
}
catch (Exception ex)
{
MessageBox.Show("The process failed: {0}", ex.ToString());
}
}
}
private void geteachdir(string fatherdir)
{
string[] dirs = Directory.GetDirectories(fatherdir);
foreach (string dir in dirs)
{
string[] files = Directory.GetFiles(dir, "*.exe");
foreach (string file in files)
{
richTextBox1.Text += file + "\n";
geteachdir(dir);
}
}
}

yalan 2011-03-19
  • 打赏
  • 举报
回复
天啊我要抓狂了~~~~~~~~~~~我这么粗心一辈子成不了高手啊!丢三落四的,自己先为自己默哀三分钟!!!


回复9楼,递归遍历每个逻辑驱动器下的文件夹即可!
daishunchaoaiqiu 2011-03-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 daishunchaoaiqiu 的回复:]
引用 3 楼 caozhy 的回复:
看错了,应该用 Directory.GetFiles()

这样只能遍历C盘,怎么遍历其他盘呢
[/Quote],还有就是 这个只能遍历C盘根目录,不能遍历C盘文件夹下的文件
yalan 2011-03-19
  • 打赏
  • 举报
回复
晕,受1楼误导了,我7楼的代码错了一个地方,现修正如下:

private void button3_Click(object sender, EventArgs e)
{
//获取本地硬盘驱动器
string[] localDrives = Directory.GetLogicalDrives();
foreach(string eachDrive in localDrives)
{
try
{
string[] dirs = Directory.GetFiles(@eachDrive,"*.exe");
foreach (string dir in dirs)
{
richTextBox1.Text += dir+"\n";
}
}
catch (Exception ex)
{
MessageBox.Show("The process failed: {0}", ex.ToString());
}
}
}
yalan 2011-03-19
  • 打赏
  • 举报
回复

//获取本地硬盘驱动器
private void loadLogicDiscs()
{
string[] localDrives = Directory.GetLogicalDrives();
foreach(string eachDrive in localDrives)
{
try
{
string[] dirs = Directory.GetDirectories(eachDrive,"*.mp3");
foreach (string dir in dirs)
{
Console.WriteLine(dir);
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
yalan 2011-03-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 daishunchaoaiqiu 的回复:]
样只能遍历C盘,怎么遍历其他盘呢
[/Quote]

遍历本地逻辑驱动器
daishunchaoaiqiu 2011-03-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 daishunchaoaiqiu 的回复:]
引用 3 楼 caozhy 的回复:
看错了,应该用 Directory.GetFiles()

这样只能遍历C盘,怎么遍历其他盘呢
[/Quote]
还有就是遍历完后怎么得到这个文件的文件名
daishunchaoaiqiu 2011-03-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 caozhy 的回复:]
看错了,应该用 Directory.GetFiles()
[/Quote]
这样只能遍历C盘,怎么遍历其他盘呢
threenewbee 2011-03-19
  • 打赏
  • 举报
回复
看错了,应该用 Directory.GetFiles()
kid_wang 2011-03-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
C# code
using System;
using System.IO;

class Test
{
public static void Main()
{
try
{
string[] dirs = Directory.GetDirectories(@"c:\", "*.mp3");
fo……
[/Quote]
+1
threenewbee 2011-03-19
  • 打赏
  • 举报
回复
using System;
using System.IO;

class Test
{
public static void Main()
{
try
{
string[] dirs = Directory.GetDirectories(@"c:\", "*.mp3");
foreach (string dir in dirs)
{
Console.WriteLine(dir);
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}

110,536

社区成员

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

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

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