C# 文件遍历

C# 文件遍历

代码

public static class FileUtils
    {
        // 测试一下
        public static void TestGetCurrentFileList()
        {
            var fs = GetFileList(Environment.CurrentDirectory, names:".dll");
            foreach (var f in fs)
            {
                Console.WriteLine(f.FullName);
            }
        }
        /// <summary>
        /// 递归遍历文件夹获取文件
        /// </summary>
        /// <param name="path"></param>
        public static List<FileInfo> GetFileList(string path, bool isRecursion = false, int pathDeep = 20, List<FileInfo> fileInfos = null, params string[] names)
        {
            if (fileInfos == null)
            {
                fileInfos = new List<FileInfo>();
            }
            if (pathDeep < 0)
            {
                return fileInfos;
            }
            DirectoryInfo theFolder = new DirectoryInfo(path);
            //获取文件夹下文件
            FileInfo[] files = theFolder.GetFiles();
            foreach (var file in files)
            {
                // 匹配文件
                if (names == null || names.Length < 1)
                {
                    fileInfos.Add(file);
                }
                else
                {
                    foreach (var fn in names)
                    {
                        if (string.IsNullOrEmpty(fn))
                        {
                            continue;
                        }
                        if (file.Name.Contains(fn) || Regex.IsMatch(file.Name, fn))
                        {
                            fileInfos.Add(file);
                        }
                    }
                }
            }
            if (isRecursion)
            {
                // 如果是递归,遍历该文件夹下的文件夹
                var dirs = theFolder.GetDirectories();
                if (!dirs.Any())
                {
                    return fileInfos;
                }
                foreach (var dir in dirs)
                {
                    GetFileList(dir.FullName, isRecursion, --pathDeep, fileInfos, names);
                }
            }
            return fileInfos;
        }

    }
posted @ 2022-12-13 13:16  明月心~  阅读(461)  评论(0)    收藏  举报