我正在编写一个小的C#程序来递归扫描目录并获取每个文件的文件大小,一些其他信息,并将它们全部添加到sqlite数据库中的表中。然而,我遇到了一些障碍 - 我想获取目录数据(下面的表结构)并将其转换为List<课程> Class是一个包含文件数据的类,目录数据和按顺序列出所有目录的父项(Parent,grand parent等)。
目录表:
id int
parentID int
directoryName string
我该怎么做呢?获取子项列表很简单,但我发现如果不重复遍历目录列表,获取父项列表是相当困难的。
答案 0 :(得分:1)
我认为List<Class>
不适合使用。
根据您要对列表执行的操作,如果您的列表顺序不重要,我会使用Dictionary<int, Class>
,否则SortedDictionary<int, Class>
如果您希望按ID排序,或OrderedDictionary
如果您希望能够指定不同的排序方式。
答案 1 :(得分:0)
您可以使用DirectoryInfo.GetParent()
List<DirectoryInfo> parents = new List<DirectoryInfo>();
DirectoryInfo parent = di.Parent;
while(parent != null){
parents.Add(parent);
parent = di.Parent;
}