繁体   English   中英

重命名文件夹中的文件,而无需使用Java重命名扩展名

[英]Rename files in a folder with out renaming the extension using java

我正在尝试通过匹配包含在文件夹中的column2值和图像名称来重命名具有csv文件column1值的文件夹中的文件。因为图像名称和column2值将相等。我只想使用column1值重命名。我如何实现它。 。

我已经编写了用于从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
葡萄酒,ghf_10677.jpg
绿色和红色,ghf_10482.jpg
遮光霜,ghf_10483..jpg
白色和橙色,ghf_10484.jpg

使用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.");
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM