C# 获取指定路径下的文件结构(树形结构)
- namespace Vue.Content
- {
- 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# 获取指定路径下的文件结构(树形结构)的更多相关文章
- Python获取指定路径下所有文件的绝对路径
需求 给出制定目录(路径),获取该目录下所有文件的绝对路径: 实现 方式一: import os def get_file_path_by_name(file_dir): ''' 获取指定路径下所有文 ...
- C#中获取指定路径下特定开头和后缀的所有文件
场景 指定一个文件路径,获取当前路径下所有文件,并筛选出以指定内容开头和结尾的文件. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 ...
- C#中获取指定路径下指定后缀名的所有文件的路径的list
场景 指定一个路径和后缀名,查找这个路径下所有以此后缀名结尾的文件. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取 ...
- nodejs 获取指定路径下所有的文件夹名
示例:获取 ./components 下所有的文件夹名称 let components = [] const files = fs.readdirSync('./components') files. ...
- java获取指定路径下的指定文件/java.io.File.listFiles(FilenameFilter filter)
java.io.File.listFiles(FilenameFilter filter) 返回抽象路径名数组,表示在目录中此抽象路径名表示,满足指定过滤器的文件和目录. 声明 以下是java.io. ...
- C#遍历指定路径下的目录
通过指定路径訪问路径下的文件.在C#的开发中主要利用了Directory类和DirectoryInfo类,简要介绍Directory类中的成员:命名空间 System.IO 命名空间 1.Create ...
- <UnityTheGreat><001>获取指定目录下指定类型的所有文件的名称
#region Environment Windows 10 Unity 2019.4.16f1c1 LTS VSCode 1.52 https://github.com/MirzkisD1Ex0/U ...
- PHP 获取指定目录下所有文件(包含子目录)
PHP 获取指定目录下所有文件(包含子目录) //glob — 寻找与模式匹配的文件路径 $filter_dir = array('CVS', 'templates_c', 'log', 'img', ...
- 指定路径下建立Access数据库并插入数据
今天刚刚开通博客,想要把我这几天完成小任务的过程,记录下来.我从事软件开发的时间不到1年,写的不足之处,还请前辈们多多指教. 上周四也就是2016-04-14号上午,部门领导交给我一个小任务,概括来讲 ...
随机推荐
- useful urls
数据挖掘技术: http://ddl.escience.cn/f/IwoF?rid=8188575 李航 统计学习方法: http://ddl.escience.cn/f/Iwn0
- python 使用pip安装使用国内镜像加速下载安装包的方法
清华大学提供开源镜像站:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/ pypi 镜像每 5 分钟同步一次. pip install 包的名字 == 版 ...
- ML_Clustering
西瓜书学习...ing K均值 k-means 给定样本集$ D = {X_1,X_2,...X_n} \(,k-means针对聚类所得簇划分\)C = {C_1,C_2,...,C_k}$最小化平方 ...
- 13. Forensics (取证 4个)
Maltego是一个取证和数据挖掘应用程序. 它能够查询各种公共数据源,并以图形方式描绘人员,公司,网站和文档等实体之间的关系. Maltego也是一个开源智能,但不是开源软件. Helix The ...
- 单线拨号上网时RouterOS内网端口映射的配置
很多时候routeros 是通过单线拨号上网,假设PPP接口名为pppoe-out1 若需要添加内网ip=18.16.1.92主机的3389端口映射 ,可以在命令行键入: ip firewall na ...
- Android L2TP Client Setup
原文链接:http://www.softether.org/4-docs/2-howto/9.L2TPIPsec_Setup_Guide_for_SoftEther_VPN_Server/3.Andr ...
- ubuntu 主题和zsh终端
ubuntu 主题和zsh终端 1) sudo apt-get install unity-tweak-tool sudo add-apt-repository ppa:noobslab/theme ...
- How to detect, enable and disable SMBv1, SMBv2, and SMBv3 in Windows and Windows Server
转自:https://support.microsoft.com/en-us/help/2696547/detect-enable-disable-smbv1-smbv2-smbv3-in-windo ...
- Java高级特性 第12节 XML技术
一.XML简介 1. XML介绍 XML是可扩展标记语言(Extensible Markup Language ),XML是一种数据格式,类似 HTML,是使用标签进行内容描述的技术,与HTML不同的 ...
- 敏捷开发SCM
敏捷的目标:自组织,提高交付质量和交付速度:敏捷中实现拥抱变化是通过迭代增量实现的:所谓的迭代是循环,循环一种机制和模式,增量则是价值的增加,迭代增量,就是通过每次工作流程的循环实现业务价值的提升:那 ...