C# 怎么获取一个文件夹内的所有子文件夹(包含子文件夹内的所有子文件夹)。
递归到一个list表里,求List的count值就好
输入某文件夹路径,遍历该文件夹及其子文件夹(包括子文件夹的子文件夹等),获取其中所有文件的函数:
/// /// 查找指定文件夹下指定后缀名的文件/// /// 文件夹/// 后缀名/// 文件路径public void GetFiles(DirectoryInfo directory, string pattern, ref List fileList){if (directory.Exists || pattern.Trim() != string.Empty){try{foreach (FileInfo info in directory.GetFiles(pattern)){fileList.Add(info.FullName.ToString());}}catch (System.Exception ex){Console.WriteLine(ex.ToString());}foreach (DirectoryInfo info in directory.GetDirectories())//获取文件夹下的子文件夹{GetFiles(info, pattern, ref fileList);//递归调用该函数,获取子文件夹下的文件}}}
使用实例:
List FindResult = new List();
GetFiles(new DirectoryInfo(@"C:\","*.*", ref FindResult); //获取C盘下的所有文件路径GetFiles(new DirectoryInfo(@"\\192.168.1.107\Save"), "*.*", ref FindResult);//获取局域网上共享文件夹下的所有文件
{
//这是路径:@"./TestText/"
//这是文件夹名称: txtName
string[] str = File.ReadAllLines(@"./TestText/" + txtName);
string value = null;
for (int i = 0; i < str.Length; i++)
{
value += str[i].ToString() + "\n";
}
return value; //返回的是文件名称 (文件名1+文件名2+文件名3 )
}
//如果你要得到所有文件名
string[] splitNew = value.Split(' '); //以空格截取出来
for(int i=0;i<splitNew .length;i++){
string name = splitNew[i].tostring(); //这得到文件名称
}
递归获取文件夹下的所有子文件夹;我有个获取文件夹下所有文件的方法你参考下:
private List<string> GetFolders(string target)
{
int length = 0;
List<string> filenames = new List<string>();
string[] files = Directory.GetFiles(target);
length = files.Length;
for (int i = 0; i < length; i++)
{
filenames.Add(files[i]);
}
string[] folders = Directory.GetDirectories(target);
length = folders.Length;
for (int i = 0; i < length; i++)
{
List<string> lst = GetFolders(folders[i]);
int len = lst.Count;
for (int j = 0; j < len; j++)
{
filenames.Add(lst[j]);
}
}
return filenames;
}
使用递归
循环
周泻瑞朋: System.IO.DirectoryInfo di = new System.IO.DirectoryInfo("d:\\"); foreach (System.IO.FileInfo fi in di.GetFiles("*.*")) { MessageBox.Show(fi.Name); }
大祥区18789442645: c#中如何从文件夹中提取所有的文件?
周泻瑞朋: string filepath = 文件夹路径; private void LoadFiles(string targetDirectory) { /获取文件 string[] fileEntries = Directory.GetFiles(targetDirectory); for (int i = 0; i < fileEntries.Length; i++) { ListBox1.Items.Add(fileEntries[i]); } //获取路径 string[] ...
大祥区18789442645: C#怎么读取某一文件夹下的所有文件夹和文件 - ?
周泻瑞朋: static List<string> list = new List<string>();//定义list变量,存放获取到的路径 public static List<string> getPath(string path) { DirectoryInfo dir = new DirectoryInfo(path); FileInfo[] fil = dir.GetFiles(); DirectoryInfo[] dii = dir.GetDirectories(); foreach (...
大祥区18789442645: C#怎么获得某个文件夹内的所有文件名 - ?
周泻瑞朋: using System.IO; String Path="Images"; List<string> files = null; string getFilesFilter = "*.jpg;*.jpeg;*.jpe;*.gif;*.bmp;*.png;"; string[] arrFilter = getFilesFilter.Split(';'); if (!string.IsNullOrEmpty(Path)) { files = new List<string>(); try { DirectoryInfo di = ...
大祥区18789442645: c# 怎么样获得一个文件夹下子文件夹的个数?? - ?
周泻瑞朋: ...楼上的 // 楼上的 太强悍拉//得到C盘下所有文件夹名称 string[] dir = Directory.GetDirectories(@"c:\"); //这样不就OK了吗 dir.Length();
大祥区18789442645: C# 如何导入一个文件夹中的所有文件? - ?
周泻瑞朋: private void CopyDirectory(string path, string newPath) { string[] fileNames = Directory.GetFiles(path); foreach (string file in fileNames) {File.Copy(path+file,newPath); } }
大祥区18789442645: C#如何获取指定路径文件夹下的所有文件名然后与已有文件名进行比较是否有缺失? - ?
周泻瑞朋: 给你个方法,获取某路径下的所有文件名 public List<string> GetFileList(string path) { List<string> fileList = new List<string>(); try {DirectoryInfo mydir = new DirectoryInfo(path); foreach (FileSystemInfo fsi in mydir.GetFileSystemInfos()) { if (fsi is ...
大祥区18789442645: C#如何遍历一个文件夹下面所有的文件、包括子文件夹里面的文件? - ?
周泻瑞朋: ArrayList GetAll(DirectoryInfo dir)//搜索文件夹中的文件 { ArrayList FileList = new ArrayList(); FileInfo[] allFile = dir.GetFiles(); foreach (FileInfo fi in allFile) { FileList.Add(fi.Name); } DirectoryInfo[] allDir= dir.GetDirectories(); foreach (DirectoryInfo d in ...
大祥区18789442645: C#获取如何获取指定路径文件夹下所有文件的个数??、急急急 - ?
周泻瑞朋: 直接这样Directory.GetFiles(Path).Length;
大祥区18789442645: 如何用c#获取指定文件夹下所有文件名 - ?
周泻瑞朋: C#的IO自带了一个方法 DirectoryInfo dir = new DirectoryInfo("文件夹名称"); dir.getFiles();//这个方法返回值就是Fileinfo类型的数组