c#中如何对打开的文件夹中的文件进行统计?谢谢

窗体中指定一个文件路径,点击确定后,对指定路径下的所有文件(包括子文件夹)的文件进行统计,输出结果包括:总文件个数,按文件扩展名进行的分类个数,文件总大小,按扩展名分类统... 窗体中指定一个文件路径,点击确定后,对指定路径下的所有文件(包括子文件夹)的文件进行统计,输出结果包括:总文件个数,按文件扩展名进行的分类个数,文件总大小,按扩展名分类统计的各类文件大小。用合适的方式进行呈现,比如表格。 展开
 我来答
376710727
2016-05-18 · TA获得超过8937个赞
知道大有可为答主
回答量:2593
采纳率:100%
帮助的人:1259万
展开全部
System.IO 提供了File的操作类。
FolderBrowserDialog 可以打开文件夹,选择文件夹。

如何获取指定目录包含的文件和子目录
1. DirectoryInfo.GetFiles():获取目录中(不包含子目录)的文件,返回类型为FileInfo[],支持通配符查找;
2. DirectoryInfo.GetDirectories():获取目录(不包含子目录)的子目录,返回类型为DirectoryInfo[],支持通配符查找;
3. DirectoryInfo. GetFileSystemInfos():获取指定目录下(不包含子目录)的文件和子目录,返回类型为FileSystemInfo[],支持通配符查找;
如何获取指定文件的基本信息;
FileInfo.Exists:获取指定文件是否存在;
FileInfo.Name,FileInfo.Extensioin:获取文件的名称和扩展名;
FileInfo.FullName:获取文件的全限定名称(完整路径);
FileInfo.Directory:获取文件所在目录,返回类型为DirectoryInfo;
FileInfo.DirectoryName:获取文件所在目录的路径(完整路径);
FileInfo.Length:获取文件的大小(字节数);
FileInfo.IsReadOnly:获取文件是否只读;
FileInfo.Attributes:获取或设置指定文件的属性,返回类型为FileAttributes枚举,可以是多个值的组合
FileInfo.CreationTime、FileInfo.LastAccessTime、FileInfo.LastWriteTime:分别用于获取文件的创建时间、访问时间、修改时间;

通过这些方法可以写出遍历,查找指定路径下所有的文件、子文件夹和子文件夹下的文件 等等。
个数和总大小很好统计,通过将文件路径取最后几位来判断文件类型。通过linq.GroupBy来分组,进行求和计算。

呈现的话需要确定一种UI技术,如WPF 或者Winform还是ASP.NET
追问

您好,我刚开始学习C#,这些理论的东西我似懂非懂,能不能有详细的代码作为指导呢?我现在的代码如下(只实现了文件夹的打开,但不懂怎么统计)


追答
请再仔细看一下我的回答,你需要的东西我全都写上去了,你的思路应该要有。
无非就是先找第一层文件夹下的文件, 然后再找第一层文件夹下的所有子文件夹,然后对这些子文件夹一个一个进行第二层的处理。 一直遍历到没有子文件夹,结束。拿到数据列表。
DirectoryInfo.GetFiles(),返回的就是一个文件夹路径下的所有文件,
DirectoryInfo.GetDirectories();返回的是一个路径下所有子文件夹,
比如初始文件夹为D:\Doc
var files= DirectoryInfo.GetFiles("d:\doc");
foreach(var file in files)
{
记录下第一层的所有文件。

}
foreach(var dir in DirectoryInfo.GetDirectories("d:\doc"))
{
遍历第一层子文件夹
foreach(var file in DirectoryInfo.GetFiles( dir.path)) //根据子文件夹路径去找里面的文件
{
.....
}
}

这么一层一层去找就好了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式