C#-IO-获取某一路径下的所有文件名信息(包括子文件夹)

C#获取某一路径下的所有文件名信息(包括子文件夹)

前言:初步梳理记录,以后慢慢总结更多的方法...

方法一:

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 != "1";
            } 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 > 0) {
                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();
        }
    }
}

控制台信息截图:

C#-IO-获取某一路径下的所有文件名信息(包括子文件夹)_第1张图片

*感谢您的阅读。喜欢的、有用的就请大哥大嫂们高抬贵手“推荐一下”吧!你的精神 支持是博主强大的写作动力。欢迎转载! 
*博主的文章是自己平时开发总结的经验,由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。 
*我的博客: http://www.cnblogs.com/lxhbky/

你可能感兴趣的:(C#)