我有一个文件夹层次结构,其中一个文件夹可以有一个父文件夹,深度不受限制。
所以...文件夹 A FolderId = 1 ParentFolderId = Null(顶级)
文件夹 B FolderId = 2 ParentFolderId = 1(嵌套在 A 下)
文件夹 C FolderId = 3 ParentFolderId = 2(嵌套在 B 下)
文件夹 D FolderId = 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; }
}
先感谢您。