フォルダー階層には、フォルダーに無制限の深さの親フォルダーを含めることができます。
つまり...フォルダAFolderId= 1 ParentFolderId = Null(トップレベル)
フォルダBFolderId= 2 ParentFolderId = 1(Aの下にネスト)
フォルダーCFolderId= 3 ParentFolderId = 2(Bの下にネスト)
フォルダDフォルダID=4 ParentFolderId = 3(Cの下にネスト)
フォルダB(またはユーザーが選択したフォルダ)のすべての子を取得して、すべての子を削除できるようにしますが、親は残します(もちろん、最上位のフォルダが選択されている場合を除く)。
これはおそらくかなり単純な再帰またはforeachループですが、今朝は苦労しています!私はC#とEFを使用しているので、それを使用するものが最も役立ちます。可能であれば、結果をフラットリストとして表示したいと思います。
理想的には、カスタムFolderオブジェクトのメソッドとして使用して、所有している任意のフォルダーに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; }
}
前もって感謝します。