C# 递归方式获取某路径下的txt文件及大小
白板编程写到这道题,思路是没错但是方法名字没记住,写代码习惯性都是都是vs点出来的,特地来电脑写一下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace FileIO
{
class Program
{
static void Main(string[] args)
{
string path = @"D:\程序编程文档\02C#.NET\11IO\操作IO\FileIO\测试使用的";
GetTxtFiles(path);
Console.WriteLine("总数为:{0}", dicts.Count);
foreach (var key in dicts.Keys)
{
Console.WriteLine("当前的key:{0},值:{1}", key, dicts[key]);
}
Console.ReadKey();
}
static Dictionary<string, long> dicts = new Dictionary<string, long>();
static void GetTxtFiles(string filePath)
{
if (!Directory.Exists(filePath))
{
return;
}
//创建一个DirectoryInfo的类
DirectoryInfo directoryInfo = new DirectoryInfo(filePath);
//获取当前的目录的文件
FileInfo[] fileInfos = directoryInfo.GetFiles();
foreach (FileInfo info in fileInfos)
{
//获取文件的名称(包括扩展名)
string fullName = info.FullName;
//获取文件的扩展名
string extension = info.Extension.ToLower();
if (extension == ".txt")
{
//获取文件的大小
long length = info.Length;
dicts.Add(fullName, length);
}
}
//获取当前目录下的所有子目录
DirectoryInfo[] directoryInfos = directoryInfo.GetDirectories();
foreach (DirectoryInfo info in directoryInfos)
{
//获取当前子目录的路径
string path = info.FullName;
//递归调用
GetTxtFiles(path);
}
}
}
}
目录文件是这样子的
测试结果