【发布时间】:2015-11-08 12:50:30
【问题描述】:
我知道我的标题有点误导,但我真的不知道该怎么说。
基本上我有一个包含图像的文件夹,其名称为:0.png 到 100.png。当我尝试使用以下方法加载它们时:
public static void buildImageList() {
Main.log("Building list of image files...");
File[] files = new File(Constants.getImageLocation()).listFiles();
int id = 0;
for (File file : files) {
if (file.isDirectory()) {
continue;
}
if (!file.getName().contains(".png") && !file.getName().contains(".jpg") && !file.getName().contains(".jpeg") && !file.getName().contains(".PNG")) {
continue;
}
imageFiles.add(new FileImage(id, fileToByteArray(file)));
id++;
}
Main.log("Found " + imageFiles.size() + " images in the folder!");
}
我得到的文件不是按顺序排列的:0.png、1.png、10.png、11.png 等等。
我需要更改哪些内容才能获得 0.png、1.png、2.png、3.png?
【问题讨论】:
-
那是因为文件名是
String类型 -
你得到了字符串的自然顺序。要获得不同的东西,您必须将所有文件名读入一个列表并使用比较器对其进行排序,该比较器采用文件名的前缀并将其与其他文件名进行数字比较。
-
你怎么知道文件的顺序?您的代码 sn-p 仅打印国家/地区。