有没有办法直接获取目录结构并在C#中将其解析为Json?

我想知道是否有办法获取特定的目录结构并将其解析为json,因此我可以使用jquery插件创建客户端树视图模式。 提前致谢

使用JSON.NET:

JToken GetDirectory(DirectoryInfo directory) { return JToken.FromObject(new { directory = directory.EnumerateDirectories() .ToDictionary(x => x.Name, x => GetDirectory(x)), file = directory.EnumerateFiles().Select(x => x.Name).ToList() }); } 

用法示例:

 var json = GetDirectory(new DirectoryInfo("...some path...")).ToString(); 

这将为您提供如下所示的JSON:

 { "directory": { "dirA": { "file" : [ "file0.txt", "file1.jpg" ] }, "emptyDir": { } }, "file": [ "file2.png" ] } 

实际上,有一种使用Json.NET将C#对象转换为JSON的简单方法。

您只需创建一个包含所需数据的List<>然后调用

 var wrapper = new { TreeData= list }; string json = JsonConvert.SerializeObject(wrapper); 

您可以创建自定义类,如:

 abstract class DirectoryChildItem { public string Name { get; set; } } class Directory : DirectoryChildItem { public List Childs { get; set; } } class File : DirectoryChildItem { } 

然后,您应该使用静态类System.IO.Directory遍历文件系统,并使用上面的类创建项目。 遍历文件系统后,在ASP.NET MVC操作中使用“return Json(obj)”方法