c#中如何对打开的文件夹中的文件进行统计?谢谢
窗体中指定一个文件路径,点击确定后,对指定路径下的所有文件(包括子文件夹)的文件进行统计,输出结果包括:总文件个数,按文件扩展名进行的分类个数,文件总大小,按扩展名分类统...
窗体中指定一个文件路径,点击确定后,对指定路径下的所有文件(包括子文件夹)的文件进行统计,输出结果包括:总文件个数,按文件扩展名进行的分类个数,文件总大小,按扩展名分类统计的各类文件大小。用合适的方式进行呈现,比如表格。
展开
1个回答
展开全部
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
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
追答
请再仔细看一下我的回答,你需要的东西我全都写上去了,你的思路应该要有。
无非就是先找第一层文件夹下的文件, 然后再找第一层文件夹下的所有子文件夹,然后对这些子文件夹一个一个进行第二层的处理。 一直遍历到没有子文件夹,结束。拿到数据列表。
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)) //根据子文件夹路径去找里面的文件
{
.....
}
}
这么一层一层去找就好了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询