我正在寻找一种高效的方法,将文件列表解析为树形结构。这个列表可能包含数亿个文件路径。
暴力解决方案是在每个目录分隔符出现的位置上拆分每个路径,并通过字符串比较遍历整个树,在目录和文件条目中添加内容,但这样会非常慢。
输入数据通常按字母顺序排序,因此列表可能如下所示:
C:\Users\Aaron\AppData\Amarok\Afile C:\Users\Aaron\AppData\Amarok\Afile2 C:\Users\Aaron\AppData\Amarok\Afile3 C:\Users\Aaron\AppData\Blender\alibrary.dll C:\Users\Aaron\AppData\Blender\and_so_on.txt
从这个排序中,我的自然反应是在进行缓慢的字符串比较之前,以某种方式将目录列表分成组。我真的不确定。我会感激任何想法。
编辑:如果可能的话,最好从上到下延迟加载此树。
暴力解决方案是在每个目录分隔符出现的位置上拆分每个路径,并通过字符串比较遍历整个树,在目录和文件条目中添加内容,但这样会非常慢。
输入数据通常按字母顺序排序,因此列表可能如下所示:
C:\Users\Aaron\AppData\Amarok\Afile C:\Users\Aaron\AppData\Amarok\Afile2 C:\Users\Aaron\AppData\Amarok\Afile3 C:\Users\Aaron\AppData\Blender\alibrary.dll C:\Users\Aaron\AppData\Blender\and_so_on.txt
从这个排序中,我的自然反应是在进行缓慢的字符串比较之前,以某种方式将目录列表分成组。我真的不确定。我会感激任何想法。
编辑:如果可能的话,最好从上到下延迟加载此树。