如果您发现命名此问题标题的更合适的方式,请随时更新它。
我有节点
public Class Node
{
public List<Node> Children = new List<Node>();
public Node Parent;
public FileSystemInfo Value;
}
表示树中的文件。
现在我想将该节点类更改为:
class ScanItem
{
public List<ScanItem> Children;
public ScanItem Parent;
public long Size;
public string Name;
public string FullPath;
public bool IsDirectory;
// etc....
}
所以我的问题是如何将一个Node
类对象转换为ScanItem
. 我想存储文件和目录的大小而不仅仅是文件。(节点类只存储文件的大小而不是目录)因此,我将不得不以某种方式递归地跟踪子项大小的总和,以实现我想要的。
到目前为止,我已将此构造函数放在 ScanItem 上:
public ScanItem(Node node)
{
this.Name = node.Name;
this.FullPath = node.Value.FullName;
foreach(var child in node.Children)
{
this.Children.add(new ScanItem(child));
}
}
这将使我能够执行演员,但我缺少分配目录的大小......