【发布时间】:2013-02-02 04:19:31
【问题描述】:
我有一个文件夹层次结构,其中一个文件夹可以有一个父文件夹,并且深度不受限制。
所以... 文件夹 A 文件夹 ID = 1 ParentFolderId = Null(顶级)
文件夹 B 文件夹 ID = 2 ParentFolderId = 1(嵌套在 A 下)
文件夹 C 文件夹 ID = 3 ParentFolderId = 2(嵌套在 B 下)
文件夹 D 文件夹 ID = 4 ParentFolderId = 3(嵌套在 C 下)
我想获取文件夹 B(或用户选择的任何文件夹)的所有子文件夹,以便我可以删除所有子文件夹,但保留父文件夹(当然,除非选择了顶级文件夹) .
这可能是一些相当简单的递归或 foreach 循环,但今天早上我正在努力解决它!我正在使用 C# 和 EF,所以使用它的东西会很有帮助。如果可能的话,我希望结果是一个平面列表。
理想情况下,我希望将它作为我的自定义文件夹对象的一种方法,以便我拥有的任何文件夹,我都可以说 Folder.Children() 或类似的东西。
文件夹对象:
public class Folder
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int? ParentId { get; set; }
public virtual Folder Parent { get; set; }
public virtual ICollection<File> Files { get; set; }
}
提前谢谢你。
【问题讨论】:
-
您能否发布您迄今为止尝试过的内容,以便从中构建答案?
-
我没有多少。曾尝试使用其他一些 StackOverflow 问题,但没有成功。