我目前正在尝试找出以正确顺序组装Windows文件路径的最佳方法,给定它的目录,这是一个例子:
File: 49ACA1~1.JPG
9 Users
8 user
7 AppData
6 Local
5 MICROS~1
5 Microsoft
4 Windows
3 TEMPOR~1
3 Temporary Internet Files
2 Low
1 Content.IE5
0 MESTLGE4
我已经根据给定此功能的输入使用自定义比较器对列表进行了排序,因此最高编号是路径中的第一个目录,最低编号是最后一个。
但是,正如您所看到的,数字5和3出现两次,这是因为它们是同一个目录,只是由8.3和完整的NTFS名称引用。
我对从这些构建字符串的最佳方式感到困惑,因为在它们被命令时,一旦命中目录5,将需要两个字符串,一个包含8.3名称,另一个包含完整的ntfs,我无法告诉分裂将在哪里提前发生。
这只是一个例子,一些文件有一个目录,而其他文件可能包含任何数字,可能是> 20,所以我希望以这样一种方式来构建它,以至于它不会成为维持的噩梦。
我尝试使用StringBuilder
,但循环和插入很快就会变得混乱。我只是想知道是否还有另一种可能更清洁的方法。我确实考虑过使用ArrayList
,但我认为这可能会产生相同的循环问题。
我很高兴收到任何意见或建议。
由于
这里的输出应该是什么样的:
8.3 = Users\user\AppData\Local\MICROS~1\Windows\TEMPOR~1\Low\Content.IE5\MESTLGE4
NTFS = Users\user\AppData\Local\Microsoft\Windows\Temporary Internet Files\Low\Content.IE5\MESTLGE4
答案 0 :(得分:0)
如果您不关心接收哪种类型的路径(8.3或完整路径,或两者的组合)并且只想要一个工作路径,您可以使用自定义比较器创建TreeSet
,这将照顾重复和订购。