我有以下文件: 1006_3906_33824_Finder2.gif, 1006_3906_33824_MapE.gif, 1006_3906_33824_Summary.txt, 1007_334_33098_Finder2.gif, 1007_334_33098_MapE.gif, 1007_334_33098_Summary.txt
我需要按数字排序文件而不是最后一部分。 该算法应读取字符串“1006_3906_33824_Finder2.gif”,并使用该部分文件创建一个文件夹:“1006_3906_33824”和“1007_334_33098_Finder2.gif”文件夹名为“1007_334_33098”等。
我如何用Java做到这一点?
代码:
public class Sorter {
public static void organizeIntoFolders() {
File folder = new File("path");
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
System.out.println(parseFilename(listOfFiles[i].getName()));
}
}
}
public static String parseFilename(String filename) {
String s = filename.substring(0, filename.lastIndexOf('_') - 1);
return s;
}
public static void makeDir(String dirname) {
File dir = new File(dirname);
if (!dir.exists()) {
dir.mkdir();
}
}
}
答案 0 :(得分:2)
我想这是一个任务,所以我不会给你答案,但算法应该与此类似:
_
拆分并查找字母字符。)File
类创建文件夹。当然,您可以按照以下建议使用正则表达式。
编辑:阐述......
public static String parseFilename(String filename){
String s = filename.substring(0, filename.lastIndexOf('_') - 1);
return s;
}
public static void makeDir(String dirname){
File dir = new File(dirname);
if(!dir.exists())
dir.mkdir();
}
答案 1 :(得分:0)