如何递归遍历某个文件夹中的所有文件? 遍历某个文件夹中的所有文件(包含任意层子目录), 对每个文件实施一种变换操作 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个是控制台程序 将文件夹的目录按层次打印的 class Program { static int i = 0; static void Main(string[] args) { string strPath = Console.ReadLine(); DirectoryInfo di = new DirectoryInfo(strPath); Console.WriteLine(di.Name); OutPutFiles(di); Console.ReadLine(); } /// <summary> /// 打印输入路径中的所有子文件和子文件夹 /// </summary> /// <param name="di">要显示的路径</param> static void OutPutFiles(DirectoryInfo di) { try { foreach (FileSystemInfo fsi in di.GetFileSystemInfos()) { i++; OutputSpace(i); Console.WriteLine(fsi.Name); if ((fsi as DirectoryInfo)!=null) { OutPutFiles((DirectoryInfo)fsi); } i--; } } catch {} //无权访问的文件夹直接跳过 } /// <summary> /// 打印阶梯空格以显示文件等级 /// </summary> /// <param name="i">等级标识</param> static void OutputSpace(int i) { for (int j = 0; j < i; j++) { Console.Write(" "); } } } string Path = "C:"; string[] dir=Directory.GetDirectories(Path);//获取C:下所有文件夹 string[] files = Directory.GetFiles(Path);//获取C:下所有文件 递归调用这两个方法 可以参考我这里写的代码:/// <summary>/// 路径分割符/// </summary>private const string PATH_SPLIT_CHAR = "\\";/// <summary> /// 将指定目录下的子目录和文件生成xml文档 /// </summary> /// <param name="targetDir">根目录</param> /// <returns>返回XmlDocument对象</returns> public static XmlDocument CreateXml(string targetDir) { XmlDocument myDocument = new XmlDocument(); XmlDeclaration declaration = myDocument.CreateXmlDeclaration("1.0","utf-8",null); myDocument.AppendChild(declaration); XmlElement rootElement = myDocument.CreateElement(targetDir.Substring(targetDir.LastIndexOf(PATH_SPLIT_CHAR) + 1)); myDocument.AppendChild(rootElement); foreach(string fileName in Directory.GetFiles(targetDir)) { XmlElement childElement = myDocument.CreateElement("File"); childElement.InnerText = fileName.Substring(fileName.LastIndexOf(PATH_SPLIT_CHAR) + 1); rootElement.AppendChild(childElement); } foreach(string directory in Directory.GetDirectories(targetDir)) { XmlElement childElement = myDocument.CreateElement("Directory"); childElement.SetAttribute("Name",directory.Substring(directory.LastIndexOf(PATH_SPLIT_CHAR) + 1)); rootElement.AppendChild(childElement); CreateBranch(directory,childElement,myDocument); } return myDocument; } /// <summary> /// 生成Xml分支 /// </summary> /// <param name="targetDir">子目录</param> /// <param name="xmlNode">父目录XmlDocument</param> /// <param name="myDocument">XmlDocument对象</param> private static void CreateBranch(string targetDir,XmlElement xmlNode,XmlDocument myDocument) { foreach(string fileName in Directory.GetFiles(targetDir)) { XmlElement childElement = myDocument.CreateElement("File"); childElement.InnerText = fileName.Substring(fileName.LastIndexOf(PATH_SPLIT_CHAR)+1); xmlNode.AppendChild(childElement); } foreach(string directory in Directory.GetDirectories(targetDir)) { XmlElement childElement = myDocument.CreateElement("Directory"); childElement.SetAttribute("Name",directory.Substring(directory.LastIndexOf(PATH_SPLIT_CHAR) + 1)); xmlNode.AppendChild(childElement); CreateBranch(directory,childElement,myDocument); } } string[] dir=Directory.GetDirectories(Path);//获取Path下所有文件夹 string[] files = Directory.GetFiles(Path);//获取Path下所有文件 递归的来做 string[] files = Directory.GetFiles(folder);查看MSDN,或Google搜一下相关内容,看看就能明白 窗体不能显示 想在指定的某一条语句开始之后,开始记录执行过的c#语句 类似SQL查询分析器的问题? Remoting 和 .NET 2.0 1.1问题 如何安全销毁线程 一个简单的成绩统计,求平均分跟最低分出错,不知道为什么 c#有没有listview和treeview结合在一起的控件?就是类似vs2003编译的时候监视窗口差不多的东西 高分!怎样在运行时遍历指定控件的属性?好像用反射机制,但具体代码是什么? 如何使用DataGrid编辑? 如何判断一个按钮是否被clicked? 散分了。 Mdi窗体工具栏合并问题?
{
static int i = 0;
static void Main(string[] args)
{
string strPath = Console.ReadLine();
DirectoryInfo di = new DirectoryInfo(strPath);
Console.WriteLine(di.Name);
OutPutFiles(di); Console.ReadLine();
} /// <summary>
/// 打印输入路径中的所有子文件和子文件夹
/// </summary>
/// <param name="di">要显示的路径</param>
static void OutPutFiles(DirectoryInfo di)
{
try
{
foreach (FileSystemInfo fsi in di.GetFileSystemInfos())
{
i++;
OutputSpace(i);
Console.WriteLine(fsi.Name);
if ((fsi as DirectoryInfo)!=null)
{
OutPutFiles((DirectoryInfo)fsi);
}
i--;
}
}
catch {} //无权访问的文件夹直接跳过
} /// <summary>
/// 打印阶梯空格以显示文件等级
/// </summary>
/// <param name="i">等级标识</param>
static void OutputSpace(int i)
{
for (int j = 0; j < i; j++)
{
Console.Write(" ");
}
}
}
string Path = "C:";
string[] dir=Directory.GetDirectories(Path);//获取C:下所有文件夹
string[] files = Directory.GetFiles(Path);//获取C:下所有文件 递归调用这两个方法
/// <summary>
/// 路径分割符
/// </summary>
private const string PATH_SPLIT_CHAR = "\\";/// <summary>
/// 将指定目录下的子目录和文件生成xml文档
/// </summary>
/// <param name="targetDir">根目录</param>
/// <returns>返回XmlDocument对象</returns>
public static XmlDocument CreateXml(string targetDir)
{
XmlDocument myDocument = new XmlDocument();
XmlDeclaration declaration = myDocument.CreateXmlDeclaration("1.0","utf-8",null);
myDocument.AppendChild(declaration);
XmlElement rootElement = myDocument.CreateElement(targetDir.Substring(targetDir.LastIndexOf(PATH_SPLIT_CHAR) + 1));
myDocument.AppendChild(rootElement);
foreach(string fileName in Directory.GetFiles(targetDir))
{
XmlElement childElement = myDocument.CreateElement("File");
childElement.InnerText = fileName.Substring(fileName.LastIndexOf(PATH_SPLIT_CHAR) + 1);
rootElement.AppendChild(childElement);
}
foreach(string directory in Directory.GetDirectories(targetDir))
{
XmlElement childElement = myDocument.CreateElement("Directory");
childElement.SetAttribute("Name",directory.Substring(directory.LastIndexOf(PATH_SPLIT_CHAR) + 1));
rootElement.AppendChild(childElement);
CreateBranch(directory,childElement,myDocument);
}
return myDocument;
} /// <summary>
/// 生成Xml分支
/// </summary>
/// <param name="targetDir">子目录</param>
/// <param name="xmlNode">父目录XmlDocument</param>
/// <param name="myDocument">XmlDocument对象</param>
private static void CreateBranch(string targetDir,XmlElement xmlNode,XmlDocument myDocument)
{
foreach(string fileName in Directory.GetFiles(targetDir))
{
XmlElement childElement = myDocument.CreateElement("File");
childElement.InnerText = fileName.Substring(fileName.LastIndexOf(PATH_SPLIT_CHAR)+1);
xmlNode.AppendChild(childElement);
}
foreach(string directory in Directory.GetDirectories(targetDir))
{
XmlElement childElement = myDocument.CreateElement("Directory");
childElement.SetAttribute("Name",directory.Substring(directory.LastIndexOf(PATH_SPLIT_CHAR) + 1));
xmlNode.AppendChild(childElement);
CreateBranch(directory,childElement,myDocument);
}
}
string[] dir=Directory.GetDirectories(Path);//获取Path下所有文件夹
string[] files = Directory.GetFiles(Path);//获取Path下所有文件 递归的来做