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. 《HTTP权威指南》读书笔记(一)

    1.因特网上有数千种不同的数据类型,HTTP仔细地给每种要通过Web传输的对象都搭上了名为MIME类型的数据格式标签.WEB服务器会为所有HTTP对象数据附加一个MIME类型.当Web浏览器从服务器中 ...

  2. 手机连接fiddler之后,安装证书的方法

    1. 手机设置锁屏密码2. 手机连接fiddler测试网络3. 手机访问    电脑IP:fiddler设置的端口号4. 点击页面中的链接,下载并安装证书,随意命名即可 (还不清楚证书有啥用,先记录下 ...

  3. webpack打包和gulp打包工具详细教程

    30分钟手把手教你学webpack实战 阅读目录 一:什么是webpack? 他有什么优点? 二:如何安装和配置 三:理解webpack加载器 四:理解less-loader加载器的使用 五:理解ba ...

  4. PTA——找鞍点

    PTA 7-56 找鞍点 #include<stdio.h> #define N 6 int main() { ; scanf("%d",&n); int a[ ...

  5. Java面试题2

    类加载机制 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的加载机制. 类从被加载到虚拟机内存中开 ...

  6. 渗透测试学习 二、Windows基础

    系统目录  服务  端口  注册表  黑客常用DOS命令(在拿到shell时会用到) 一.  系统目录 Windows目录  系统的安装目录 System32àconfigàSAM文件  是用户密码的 ...

  7. 解决long类型传到前端损失精度问题

    原因: 解决办法:https://blog.csdn.net/xiaoxiangzi520/article/details/76522242 经过验证,发现上述解决办法回导致前端先后台传输数据时导致j ...

  8. H3C_IRF

    1.IRF的优点: 跨设备负载均衡 规避环路 强大的网络扩展能力 带宽/可靠性增加 2.IRF域编号存在的意义: 域是一个逻辑概念,一个 IRF 对应一个 IRF 域 如果IRF 1 和IRF 2 之 ...

  9. ubuntu 上安装node.js 的简单方法

    一.安装 1.$ sudo apt-get install nodejs 2.$ sudo apt-get install npm 二.升级     1.升级npm命令如下: $ sudo npm i ...

  10. anki_vector SDK源码解析(教程)

    一:最近anki vector robot开放了Python SDK,我听到的第一时间就赶快上网查了查,先抛几个官网重要链接吧: Python编程API手册及环境搭建等: https://sdk-re ...