c# 获取 文件夹及子文件夹中所有文件


 返回固定 文件夹子路径

 public IActionResult getAjAttach(int AjID)
        {

            string contentRootPath = _webHostEnvironment.ContentRootPath;

            string path = contentRootPath + @"\UpFile\" + AjID + @"\";

            DirectoryInfo di = new DirectoryInfo(path);

            if (!di.Exists)
            {
                return Json(new { count = 0, msg = $"编号为{AjID}的文件夹不存在!", });
            }
            else
            {
                List<string> FileList = new List<string>();
                GetFiles(path, FileList);


                return Json(new { FileList=FileList });
            }

        }
        /// <summary>
        /// 获取所有文件
        /// </summary>
        /// <param name="path"></param>
        /// <param name="FileList"></param>
       private void GetFiles(string path, List<string> FileList )
        {
            DirectoryInfo dir = new DirectoryInfo(path);
            FileInfo[] fil = dir.GetFiles();
            DirectoryInfo[] dii = dir.GetDirectories();
            foreach (FileInfo f in fil)
            {
                int pos = f.FullName.IndexOf("UpFile"); // 获取 从 upfile/ 以后 路径及文件名
                 string n = f.FullName.Substring(pos + 7, f.FullName.Length - pos-7);
               // Console.WriteLine("文件名"+n);
                FileList.Add(n);
            }
            //获取子文件夹内的文件列表,递归遍历  
            foreach (DirectoryInfo d in dii)
            {
              //  Console.WriteLine("文件夹名" + d.FullName);
                GetFiles(d.FullName, FileList );
            }
        }

运行测试结果 

 

 

posted on 2022-08-24 10:08  码农at突泉  阅读(1402)  评论(0)    收藏  举报