社区
C#
帖子详情
C#遍历硬盘
nike591y
2006-03-02 08:15:52
想用C#写个遍历硬盘的程序,就像windows里的文件查找功能或各种杀毒软件的全盘扫描功能那样。我原先用WIN32 API试着写过,但始终解决不了广度和深度的问题,所以现在想用C#试试,请高手们指导指导。谢谢
...全文
433
8
打赏
收藏
C#遍历硬盘
想用C#写个遍历硬盘的程序,就像windows里的文件查找功能或各种杀毒软件的全盘扫描功能那样。我原先用WIN32 API试着写过,但始终解决不了广度和深度的问题,所以现在想用C#试试,请高手们指导指导。谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jrl5365
2006-03-05
打赏
举报
回复
好的,留一记号
兔子-顾问
2006-03-05
打赏
举报
回复
很满的。尤其递归。你想象。开辟一个新的栈。那需要时间把。硬盘上多少目录。。。。
marvelstack
2006-03-05
打赏
举报
回复
递归文件目录,
http://blog.csdn.net/zhzuo/archive/2005/03/08/315125.aspx
nike591y
2006-03-04
打赏
举报
回复
二楼的朋友,能否看看你用API写的代码。
gp341
2006-03-02
打赏
举报
回复
private void FillDirectoryTree(TreeView tvw,string rootDirectoryName, bool isSource)
{
tvw.Nodes.Clear();
//获取系统上的所有逻辑驱动器
string[] strDrives = Environment.GetLogicalDrives();
try
{
//获取驱动器顶级目录列表
DirectoryInfo dir = new DirectoryInfo(rootDirectoryName);
dir.GetDirectories();
TreeNode ndRoot = new TreeNode(rootDirectoryName);
tvw.Nodes.Add(ndRoot);
if (isSource)
{
GetSubDirectoryNodes(ndRoot, ndRoot.Text, true);
}
else
{
GetSubDirectoryNodes(ndRoot, ndRoot.Text, false);
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
upshania
2006-03-02
打赏
举报
回复
递规这个 GetFolderList 方法。。提供一个父级路径给他
upshania
2006-03-02
打赏
举报
回复
#region 获得文件夹列表
/// <summary>
/// 获得文件夹列表
/// </summary>
/// <param name="parentFolder">父文件夹路径</param>
/// <returns>返回文件夹集</returns>
public static string[,] GetFolderList(string ParentFolder)
{
if (!Directory.Exists(ParentFolder))
return null;
Scripting.FileSystemObject fso=new Scripting.FileSystemObjectClass(); //fso文件操作对象
string[] folders = Directory.GetDirectories(ParentFolder);
int count = folders.Length;
string[,] str = new string[count,4];
int index=0;
foreach (string dir in folders)
{
long sizeNum=Convert.ToInt64(fso.GetFolder(dir).Size);
str[index,0]=(fso.GetFolder(dir).Name);//文件名
str[index,1]=StrManage.DisplayFileSize(sizeNum);//大小
str[index,2]=fso.GetFolder(dir).DateLastModified.ToString();
str[index,3]=StrManage.AttributesReplace(fso.GetFolder(dir).Attributes.ToString());
index++;
}
//由于下面的方法要生成实例。很慢。。所以杀掉换成上面的方法
/*
Scripting.FileSystemObject fso=new Scripting.FileSystemObjectClass(); //fso文件操作对象
DirectoryInfo directoryPath=new DirectoryInfo(ParentFolder);
int count = directoryPath.GetDirectories().Length;
string[,] str = new string[count,4];
DirectoryInfo[] directoryList=directoryPath.GetDirectories();
int index=0;
foreach(DirectoryInfo tempPath in directoryList)
{
long sizeNum=Convert.ToInt64(fso.GetFolder(tempPath.FullName).Size);
str[index,0]=(tempPath.Name);//文件名
str[index,1]=StrManage.DisplayFileSize(sizeNum);//大小
str[index,2]=tempPath.LastAccessTime.ToString(); //最后访问的时间
str[index,3]=StrManage.AttributesReplace(tempPath.Attributes.ToString());
index++;
}
*/
return str;
}
#endregion
達魔
2006-03-02
打赏
举报
回复
用哪种语言都可以实现的,WIN API很容易的,很久以前我刚学VC的时候弄过一个。
要用到递归。
1.得到当前系统中的盘符个数以及盘符内容。
2.循环处理每一个盘符;
3.递归查找指定盘符下的所有文件夹和文件
WIN32 API中有获得指定路径下的第一个文件和获得指定文件的下一个文件的两个函数,用这两个函数就可以实现了。
C#中在Sytem.IO命名空间下有关于文件和路径的类,你一查便知
c#
基于TreeView递归调用
遍历
系统盘符的应用实例
c#
基于TreeView递归调用
遍历
系统盘符的应用实例,功能很强大,注释很清楚。
c#
winform
遍历
文件 运用多线程
vs2012写的,
c#
winform程序. 运用线程池写的,查找文件winform, 多线程查找文件. 可以查看当前
硬盘
有哪些文件,每个文件对应的文件大小.文件路径. 运用listView显示结果.listView分开显示结果信息
C#
零基础入门课程
零基础
C#
入门课程旨在帮助编程小白从零开始掌握
C#
语言的基础知识和编程技能。课程主要包括以下几个方面:
C#
语言简介与开发环境搭建:介绍
C#
语言的特点、应用场景和优势,并教授如何搭建
C#
开发环境,选择和使用常用...
VBS调用WMI
遍历
搜索
硬盘
文件并计数的方法
主要介绍了VBS调用WMI
遍历
搜索
硬盘
文件并计数的方法,需要的朋友可以参考下
c#
用TreView控件
遍历
磁盘目录
获取
硬盘
上所有的文件,在Treeview空间中一目了然的查看整个
硬盘
。
C#
110,532
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章