Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#端点将目录和文件的嵌套列表作为JSON返回_C#_Asp.net_Rest_Endpoint - Fatal编程技术网

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" 
               ]
    }
]