在java中读取文件名的开头并使用该名称创建文件夹
我有以下文件: 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\u 3906\u 33824\u Finder2.gif”,并使用文件的这一部分创建一个文件夹:“1006\u 3906\u 33824”和“1007\u 334\u 33098\u Finder2.gif”以及名为“1007\u 334\u 33098”的文件夹等 如何在Java中实现这一点 代码:在java中读取文件名的开头并使用该名称创建文件夹,java,Java,我有以下文件: 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\u 3906\u 33824\u Finder2.gif”,并使用文件的这一部分
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();
}
}
}
公共类分拣机{
公共静态void organizeIntoFolders(){
文件夹=新文件(“路径”);
File[]listOfFiles=folder.listFiles();
for(int i=0;i
@BoinQ使用正则表达式可以非常轻松地完成这项工作。请参阅以下步骤
- 创建一个正则表达式
- 通过表达式传递每个文件名,并使用group检索编号
- 使用检索到的值创建文件夹并将文件放入其中
您可以参考正则表达式信息和java实现。在上述情况下,使用正则表达式将是最可靠的方法。我想这是一个作业,所以我不会给你答案,但算法应该类似于此:
拆分并查找字母字符)
文件
类创建文件夹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();
}
我从来都不懂正则表达式,我根本不知道如何让它抓住数字这不是作业这是一个爱好项目,我正在尝试对我从中提取的图像和其他类似页面进行排序。你觉得我的答案有用吗?或者我应该详细说明一下吗?我想你必须详细说明一下。子字符串有一个错误,我将尝试发布我的代码,它可能不起作用。输入错误。将子字符串更改为子字符串。