C#端点将目录和文件的嵌套列表作为JSON返回
我的目标是实现一个端点,它返回从某个根目录开始的所有文件和目录的嵌套列表,例如C#端点将目录和文件的嵌套列表作为JSON返回,c#,asp.net,rest,endpoint,C#,Asp.net,Rest,Endpoint,我的目标是实现一个端点,它返回从某个根目录开始的所有文件和目录的嵌套列表,例如C:\Temp。我编写了以下代码: 名称空间API.Controllers { 公共类UploadController:BaseController { [路线(“api/上传”,顺序=-1)] [ResponseType(typeof(IEnumerable))]/首先,属性
C:\Temp
。我编写了以下代码:
名称空间API.Controllers
{
公共类UploadController:BaseController
{
[路线(“api/上传”,顺序=-1)]
[ResponseType(typeof(IEnumerable))]/首先,属性
不会影响您的响应,例如,swagger使用元数据来记录端点
Directory.GetFileSystemEntries
,正如Greg所说,返回集合(数组)od字符串表示路径。您需要解析结果以设置您想要的格式,这类似于文件
类和目录
包含文件
,但更好的方法是使用内置类型,如文件信息
DirectoryInfo
类提供了一些您可以使用的有用方法:
获取目录中的所有文件:
获取目录中的所有目录:
或者同时获得以下两项:
阅读该方法返回的数据类型,并充分利用它;)
我认为您需要执行一些递归来遍历所有子目录。首先属性[ResponseType]
不会影响您的响应,例如swagger使用元数据来记录端点
Directory.GetFileSystemEntries
,正如Greg所说,返回集合(数组)od字符串表示路径。您需要解析结果以设置您想要的格式,这类似于文件
类和目录
包含文件
,但更好的方法是使用内置类型,如文件信息
DirectoryInfo
类提供了一些您可以使用的有用方法:
获取目录中的所有文件:
获取目录中的所有目录:
或者同时获得以下两项:
阅读该方法返回的数据类型,并充分利用它;)
我认为您需要执行一些递归来遍历所有子目录。好的,目录。GetFileSystemEntries
将返回与您的搜索模式匹配的所有项的数组。要返回嵌套,您需要迭代路径以正确创建结构。您可能会创建一个包含父项和chil的对象d目录进行分组,最终将其展平,但您需要遍历并分析自己以创建嵌套结构。嗯,directory.GetFileSystemEntries
将返回与您的搜索模式匹配的所有项的数组。要返回嵌套,您需要迭代路径以正确创建结构。您可以可能会创建一个对象,其中包含一个父目录和一个子目录,以便对其进行分组,最终将其展平,但您需要自己遍历和解析以创建嵌套结构。
[
"C:\\\\Temp\\file1",
"C:\\\\Temp\\dir1\\file2",
"C:\\\\Temp\\dir1\\file3"
]
[
{ "~":
[ "file1" ]
},
{
"~/dir1":
[
"file2" ,
"file3"
]
}
]