C#获取文件夹下所有的子文件

class Program
    {
        static void Main(string[] args)
        {

            string path = @"D:\Test";
           // DirectoryModel directory = new DirectoryModel(path);
           //List<FileModel> fileList= directory.GetFiles();
            DirectoryModel directory = new DirectoryModel();
            List<FileModel> fileList = directory.GetFiles(path);
        }

    }
    public class FileModel
    {
        public string DirectoryName { get; set; }
        public string FileName { get; set; }
    }

    public class DirectoryModel
    {
        public string DirectoryPath { get; set; }
        public static List<FileModel> fileList = new List<FileModel>();
        public DirectoryModel() { 
            
        }
        public DirectoryModel(string path)
        {
            this.DirectoryPath = path;
        }
        public List<FileModel> GetFiles()
        {
            DirectoryInfo dirInfo = new DirectoryInfo(DirectoryPath);
            FileInfo[] fileInfos = dirInfo.GetFiles();
            foreach (FileInfo fileInfo in fileInfos)
            {
                FileModel file = new FileModel();
                file.DirectoryName = fileInfo.DirectoryName;
                file.FileName = fileInfo.Name;
                fileList.Add(file);
            }
            DirectoryInfo[] dirInfos = dirInfo.GetDirectories();
            foreach (DirectoryInfo dirInfo1 in dirInfos)
            {
                GetFiles(dirInfo1.FullName);
            }
            return fileList;
        }
        public List<FileModel> GetFiles(String path)
        {
            DirectoryInfo dirInfo = new DirectoryInfo(path);
            FileInfo[] fileInfos = dirInfo.GetFiles();
            foreach (FileInfo fileInfo in fileInfos)
            {
                FileModel file = new FileModel();
                file.DirectoryName = fileInfo.DirectoryName;
                file.FileName = fileInfo.Name;
                fileList.Add(file);
            }
            DirectoryInfo[] dirInfos = dirInfo.GetDirectories();
            foreach (DirectoryInfo dirInfo1 in dirInfos)
            {
                GetFiles(dirInfo1.FullName);
            }
            return fileList;
        }

    }

你可能感兴趣的:(C#获取文件夹下所有的子文件)