专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

C# 获取指定路径下的文件目录结构

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 1:13:25       共计:3650 浏览



    namespace ejk.com

    {

        public class FileNames

        {

            public int id { get; set; }

            public string text { get; set; }

            public state state { get; set; }

            public List<FileNames> children { get; set; }

            public string icon { get; set; }

        }

        public class state

        {

            public bool opened { get; set; }

        }

        //以上字段为树形控件中需要的属性

        public class GetSystemAllPath : Controller

        {

            //获得指定路径下所有文件名

            public static List<FileNames> getFileName(List<FileNames> list, string filepath)

            {

                DirectoryInfo root = new DirectoryInfo(filepath);

                foreach (FileInfo f in root.GetFiles())

                {

                    list.Add(new FileNames

                    {

                        text = f.Name,

                        state = new state { opened = false },

                        icon = "jstree-file"

                    });

                }

                return list;

            }

            //获得指定路径下的所有子目录名

            // <param name="list">文件列表</param>

            // <param name="path">文件夹路径</param>

            public static List<FileNames> GetallDirectory(List<FileNames> list, string path) {

                DirectoryInfo root = new DirectoryInfo(path);

                var dirs = root.GetDirectories();

                if (dirs.Count()!=) {

                    foreach (DirectoryInfo d in dirs)

                    {

                        list.Add(new FileNames

                        {

                            text = d.Name,

                            state = new state { opened = false },

                            children = GetallDirectory(new List<FileNames>(), d.FullName)

                        });

                    }

                }

                list = getFileName(list, path);

                return list;

            }

        }

    }


以上为核心部分!!!


后台返回代码:Sample/GetAllPath


   [HttpGet("[action]")]

           public List<FileNames> GetAllPath() {

               //获取当前系统的根路径

               string rootpath = $"{hostingEnv.ContentRootPath}/";

               var list = GetSystemAllPath.GetallDirectory(new List<FileNames>(), rootpath).ToArray();

               return list.ToList();

           }


前台Html:


   <div id="demo"></div>


js部分:


     $('#demo')

                //jstree listen for event

                .on('changed.jstree', function (e, data) {

                    if (data && data.selected && data.selected.length) {

                        $('#selectpath').val(data.instance.get_path(data.selected[0], "/", 0));

                    } else {

                        $('#selectpath').val('Select a file from the tree.');

                    }

                }).jstree({

                    'core': {

                        'data': {

                            "url": "api/Sample/GetAllPath",

                            "data": function (node: any) {

                                return { "id": node.id };

                            }

                        }

                    }

            });


前端树形控件使用的是jstree,具体使用方法可以见其官网:https://www.jstree.com/


最后贴上效果图:




版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:C#使用压缩工具winrar实现rar和zip文件压缩及解压功能 | ·下一条:搭建SQL server 2008群集步骤

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有