Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得与Windows资源管理器中相同的java.io.File.list()顺序_Java_Windows - Fatal编程技术网

如何获得与Windows资源管理器中相同的java.io.File.list()顺序

如何获得与Windows资源管理器中相同的java.io.File.list()顺序,java,windows,Java,Windows,如何获得与Windows资源管理器中相同的顺序 在程序中,我正在创建Temp文件夹,例如Temp1,Temp2等等。但是,当我使用java.io.File.list()检索文件夹列表时,它给出了Temp1,Temp10等等 请说明如何获得与Windows资源管理器中显示的相同的订单列表 谢谢默认情况下,Windows资源管理器显示按名称排序的文件。查看javadoc中的File.list() 无法保证结果数组中的名称字符串将以任何特定顺序出现;特别是,它们不能保证按字母顺序出现 因此,在使用fi

如何获得与Windows资源管理器中相同的顺序

在程序中,我正在创建
Temp
文件夹,例如
Temp1
Temp2
等等。但是,当我使用
java.io.File.list()
检索文件夹列表时,它给出了
Temp1
Temp10
等等

请说明如何获得与Windows资源管理器中显示的相同的订单列表


谢谢

默认情况下,Windows资源管理器显示按名称排序的文件。查看javadoc中的
File.list()

无法保证结果数组中的名称字符串将以任何特定顺序出现;特别是,它们不能保证按字母顺序出现


因此,在使用
file.list()
获取文件列表后,需要按文件名
Arrays.sort(file.list())
对其进行排序,以获得所需的顺序

默认情况下,Windows资源管理器显示按名称排序的文件。查看javadoc中的
File.list()

无法保证结果数组中的名称字符串将以任何特定顺序出现;特别是,它们不能保证按字母顺序出现


因此,在使用
file.list()
获取文件列表后,需要按文件名
Arrays.sort(file.list())
对其进行排序,以获得所需的顺序

您需要编写自己的比较器。比较器需要拆分文件名字符串,将它们分成连续的非数字字符序列和数字字符序列。然后对序列进行排序,在比较之前将数字字符序列转换为整数。此外,如果整数相等(由于前导零),则将较长的数字序列排序在较短的序列之前。

您需要编写自己的比较器。比较器需要拆分文件名字符串,将它们分成连续的非数字字符序列和数字字符序列。然后对序列进行排序,在比较之前将数字字符序列转换为整数。此外,如果整数相等(由于前导零),则将较长的数字序列排序在较短的序列之前。

这是一种称为自然排序的特定windows排序算法的实现


简而言之,它将两个字符串拆分为字母-数字部分进行比较,并以特定的方式对这些部分进行比较,以实现这种排序。

这是一种称为自然排序的特定windows排序算法的实现


简而言之,它将两个字符串拆分为字母-数字部分进行比较,并以特定的方式对这些部分进行比较,以实现这种排序。

使用
集合创建您自己的比较器并对列表进行排序。sort()
?但是需要哪种类型的排序才能与windows order的列表相匹配?@Kishore:问题还不清楚。Windows可以按名称、大小、类型、日期、@jlordo(默认Windows顺序)进行排序。i、 e.Temp1,Temp2等等,没错,jlordo,如果我没记错的话,按名称排序也会以Temp1,temp11,Temp2。。。哎呀,不,我错了。至少在Windows 7中是1、2、11。使用
集合创建您自己的比较器和排序列表。sort()
?但是需要哪种类型的排序才能与Windows顺序中的列表相匹配?@Kishore:问题一点也不清楚。Windows可以按名称、大小、类型、日期、@jlordo(默认Windows顺序)进行排序。i、 e.Temp1,Temp2等等,没错,jlordo,如果我没记错的话,按名称排序也会以Temp1,temp11,Temp2。。。哎呀,不,我错了。至少在Windows7中是1,2,11,它给出的顺序与java的默认顺序相同。请允许我只给出有效答案,这是不正确的。Windows资源管理器使用一种称为自然排序的排序,它考虑了名称的数量部分。它的顺序与java的默认顺序相同。请允许我只给出有效答案,这是不正确的。Windows资源管理器使用一种称为自然排序的排序,它考虑了名称的数量部分。