您的位置:首页 > 其它

对文件夹下的文件及文件夹进行排序

2017-01-11 09:23 330 查看
我们在开发测试平台的时候,遇到一个这样的问题:通过给远程主机发送一个命令,执行自动化测试用例后,需要获取自动化测试用例report文件夹上新产生的测试报告。测试报告是以时间戳命名的文件夹,但同时会更新几个其他的文件,如下图所示:



我们需要做的是取出最新产生的文件夹,拉取到本地保存起来。可是如何获取最新产生的文件夹呢?网上查了一下,有如下的方法:

(1) 给出文件路径,对文件夹下的所有文件及文件夹进行排序.

import java.io.File;

import java.util.Arrays;

import java.util.Comparator;

public class FileSort {

public static void main(String[] args) {
File file = new File("F:/MerDescription/imp-19038075415690540");
if (file.isDirectory()) { // 判断file是否为目录

String[] fileNames = file.list();

Arrays.sort(fileNames, new Comparator<String>() {

@Override
public int compare(String s1, String s2) {

if(returnDouble(s1)<returnDouble(s2))

return -1;

else if(returnDouble(s1)>returnDouble(s2))

return 1;

else

return 0;
}

public  double returnDouble(String str){

StringBuffer sb = new StringBuffer();

for(int i=0;i<str.length();i++){

if(Character.isDigit(str.charAt(i)))

sb.append(str.charAt(i));

else if(str.charAt(i)=='.'&&i<str.length()-1&&Character.isDigit(str.charAt(i+1)))

sb.append(str.charAt(i));

else break;

}

if(sb.toString().isEmpty())

return 0;

else

return Double.parseDouble(sb.toString());

}
});

for (int i = 0; i < fileNames.length; i++) {
System.out.println(fileNames[i]);
}

}

}

}


运行图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: