前言:初步梳理记录,以后慢慢总结更多的方法...
方法一:使用微软提供的方法:Dicrectory类中的:public static string[] GetFiles(string path, string searchPattern, SearchOption searchOption);
path-获取文件的路径;searchPattern-要获取的包含的文件标记,使用"."可表示所有文件类型;searchaOption是一个枚举,SearchOption.AllDirectories表示获取当前目录及所有子目录;
获取的结果包含完整路径,处理下即可:
Directory.GetFiles("filePath", ".", SearchOption.AllDirectories);
方法二:使用自定义循环读取某一路径下所有的文件:
贴代码了,这里使用的是C#控制台输出文件名到记事本中,文件名使用逗号隔开:
using System;
using System.IO; namespace ConsoleApplication1
{
class Program
{
public static string FileName = ""; public static void Main(string[] args)
{
bool isContinute = true;
WriteMessage("结束程序请输入1");
WriteMessage("请输入要获取文件名的路径:");
string path = Console.ReadLine();
do
{
if (string.IsNullOrEmpty(path))
{
WriteMessage("路径不存在!请重新输入");
}
else
{
DirectoryInfo dir = new DirectoryInfo(path);
if (dir.Exists == false)
{
WriteMessage("路径不存在!请重新输入");
}
else
{
FileName = "";
GetChildDicsName(dir);
WriteMessage(FileName);
Console.WriteLine("获取该路径下文件名成功!你可以继续输入新的路径");
}
}
path = Console.ReadLine();
isContinute = path != "";
} while (isContinute);
} public static DirectoryInfo[] GetChildDicsName(DirectoryInfo dir)
{
FileInfo[] fileArray = dir.GetFiles();
DirectoryInfo[] childDirs = dir.GetDirectories(); foreach (FileInfo file in fileArray)
{
FileName += file.Name + ",";
}
if (childDirs.Length > )
{
foreach (DirectoryInfo dirChild in childDirs)
{
GetChildDicsName(dirChild);
}
}
return childDirs;
} public static void WriteMessage(string message)
{
Console.WriteLine(message);
//File.Create(@"C:\Users\Public\Desktop\test.txt");
FileStream fs = File.Open(@"C:\Users\Public\Desktop\test.txt", FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(message); //这里是写入的内容
sw.Close();
fs.Close();
}
}
}
控制台信息截图: