この質問のタイトルに適切な名前を付ける方法を見つけた場合は、お気軽に更新してください。
私はノードを持っています
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));
}
}
これにより、キャストを実行できるようになりますが、ディレクトリのサイズを割り当てることができません...