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# 获取指定路径下的文件结构(树形结构)的更多相关文章

  1. Python获取指定路径下所有文件的绝对路径

    需求 给出制定目录(路径),获取该目录下所有文件的绝对路径: 实现 方式一: import os def get_file_path_by_name(file_dir): ''' 获取指定路径下所有文 ...

  2. C#中获取指定路径下特定开头和后缀的所有文件

    场景 指定一个文件路径,获取当前路径下所有文件,并筛选出以指定内容开头和结尾的文件. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 ...

  3. C#中获取指定路径下指定后缀名的所有文件的路径的list

    场景 指定一个路径和后缀名,查找这个路径下所有以此后缀名结尾的文件. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取 ...

  4. nodejs 获取指定路径下所有的文件夹名

    示例:获取 ./components 下所有的文件夹名称 let components = [] const files = fs.readdirSync('./components') files. ...

  5. java获取指定路径下的指定文件/java.io.File.listFiles(FilenameFilter filter)

    java.io.File.listFiles(FilenameFilter filter) 返回抽象路径名数组,表示在目录中此抽象路径名表示,满足指定过滤器的文件和目录. 声明 以下是java.io. ...

  6. C#遍历指定路径下的目录

    通过指定路径訪问路径下的文件.在C#的开发中主要利用了Directory类和DirectoryInfo类,简要介绍Directory类中的成员:命名空间 System.IO 命名空间 1.Create ...

  7. <UnityTheGreat><001>获取指定目录下指定类型的所有文件的名称

    #region Environment Windows 10 Unity 2019.4.16f1c1 LTS VSCode 1.52 https://github.com/MirzkisD1Ex0/U ...

  8. PHP 获取指定目录下所有文件(包含子目录)

    PHP 获取指定目录下所有文件(包含子目录) //glob — 寻找与模式匹配的文件路径 $filter_dir = array('CVS', 'templates_c', 'log', 'img', ...

  9. 指定路径下建立Access数据库并插入数据

    今天刚刚开通博客,想要把我这几天完成小任务的过程,记录下来.我从事软件开发的时间不到1年,写的不足之处,还请前辈们多多指教. 上周四也就是2016-04-14号上午,部门领导交给我一个小任务,概括来讲 ...

随机推荐

  1. jmeter 获取登录token

    1.在登录的请求下新建正则表达式,获取token 2.正则表达式的写法 注意:apply to 默认是选择第二个,但是有获取不到token的情况就选第一个 "accessToken" ...

  2. redis服务问题解决办法

    Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.ps aux|grep redis部署虚拟机失败,代码中添加任 ...

  3. 学习flask需要用到的包

    Flask 需要下载的包 1.pip install flask 2.pip install flask-script 3.pip install flask-sqlalchemy 4.pip ins ...

  4. ccf-集合竞价-201412-3

    这道题数据量很小,所以用前缀和直接暴力解决了 首先将浮点数转换为整数; int_p=(int)(dou_p*100+0.5); 必须加一个eps,否则浮点数运算会有误差 然后从高到低枚举 #inclu ...

  5. 陈斌python语言基础与应用00

    软件改变生活:购物.餐饮.商旅出行.资料查找... Everybody in this country should learn how to program a computer...because ...

  6. Linux第七节课学习笔记

    RHEL7用户身份有以下这些: 1.管理员 root UID:0 权限最大: 2.系统用户 UID:1-999: 3.普通用户 UID:1000+. 一个用户基本组只有一个,扩展组可多个,创建扩展组用 ...

  7. Python安装及IDE激活

    简介: Windows10下安装激活Pycharm,并同时安装Python 3.x.2.x,便于在Pycharm开发环境中使用不同版本的解释器进行对比学习. 目录: 一.Python 3.x安装 二. ...

  8. 【java编程】java的关键字修饰符

    一.transient java语言的关键字,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持.换句话来说就是,用transient关键字标记的成员变量不参与序列化 ...

  9. [R] [Johns Hopkins] R Programming -- week 3

    library(datasets) head(airquality) #按月分組 s <- split(airquality, airquality$Month) str(s) summary( ...

  10. 使用samba共享文件夹,提供给window访问

    1. 下载yumdownloader yum install -y yum-utils 2. 下载samba mkdir samba cd samba yumdownloader --resolve ...