我正在尝试通过匹配column2值和&amp ;;来重命名具有csv文件column1值的文件夹中的文件。包含在folder.as中的图像名,imagenames和column2值将是相等的。我想用column1 value重命名。我可以实现它..
我已经编写了从csv文件中获取文件名和值的代码。
File folder = new File("D:\\Imagefiles");
File[] listOfFiles = folder.listFiles();
for (File file1 : listOfFiles) {
if (file1.isFile()) {
//System.out.println(file1.getName());
filename = file1.getName();
System.out.println("Imagename------->"+filename);
}
}
File file = new File("C:\\Users\\Karthik\\Desktop\\Javatask\\csvfiles\\filteredfile.csv");
List<String> lines = Files.readAllLines(file.toPath(), StandardCharsets.UTF_8);
for (String line : lines) {
String[] array = line.split(",");
if (array.length < 0)
continue;
System.out.println("--------->"+array[1]);
File f = new File("C:\\Users\\Karthik\\Desktop\\Javatask\\Imagefiles\\"+filename);
f.renameTo(new File("C:\\Users\\Karthik\\Desktop\\Javatask\\Imagefiles\\"+array[0]+".jpg"));
}
它正在重命名但与column2不匹配。我的csv如下所示
列1,列2
Wine,ghf_10677.jpg
绿色&amp;红,ghf_10482.jpg
Shaded Cream,ghf_10483..jpg
怀特&amp;橙,ghf_10484.jpg
答案 0 :(得分:0)
使用commons-io这就是你可以做到的:
File originalFile = new File("foo.bar");
...
String extension = FilenameUtils.getExtension(originalFile.getName());
String baseName = FilenameUtils.getBaseName(originalFile.getAbsolutePath());
File renamedFile = new File(originalFile.getParent(), "newFileName." + extension);
if (!originalFile.renameTo(renamedFile)) {
throw new IOException("could not rename file.");
}