重命名一个不起眼的文件Java

时间:2016-05-17 21:26:52

标签: java file

好的,所以我有一个大约有2000张图片的文件夹,都有奇怪的名字,我想循环整个过程,并将它们重命名为"" +数字(for循环中的i)。无论如何,当您只知道目录中的位置而不是名称时,是否重命名文件。我想主要的问题是在目录中获取索引x处的文件名,无论如何都要这样做吗?

public class stuff {
  static ArrayList<File> images = new ArrayList<>();

  public static void main(String[] args) throws IOException{
    Files.walk(Paths.get("C:\\Users\\Seth Gower\\Pictures\\Stuff for imgur\\iFunny Dumps\\iFunny Dump (All)"))
      .forEach(filePath -> {
        if (Files.isRegularFile(filePath)) {
          images.add(new File(filePath.toString()));
        }
      });
    for(File x : images)
      System.out.println(x.getName());

    for (int i = 0; i < images.size(); i ++){
      System.out.println(images.get(i).renameTo(new File(
          "C:\\Users\\Seth Gower\\Pictures\\Stuff for imgur\\iFunny Dumps\\iFunny Dump (All)" + "\\" + "ifunnyDump" + i)));
    }
  }
}

2 个答案:

答案 0 :(得分:2)

static ArrayList<File> images = new ArrayList<>();

public static void main(String[] args) throws IOException{
    Files.walk(Paths.get("path")).forEach(filePath -> {
        if (Files.isRegularFile(filePath)) {
            images.add(new File(filePath.toString()));
        }
    });
    for (int i = 0; i < images.size(); i ++){
        images.get(i).renameTo(new File("path" + "\\" + "text" + i + ".jpg"));
    }


}

这要归功于@hexafraction和@MatthewStrawbridge

答案 1 :(得分:0)

这很简单

您需要先找到文件所在的目录

File dir = new File("C:\\yourdirectory");

现在你需要遍历目录中的每个文件并重命名它。每个循环的A最好。如果你想在循环之前,你可以检查你指定的目录是否真的是一个目录 if (dir.isDirectory())

int i = 0;
for (File f : dir.listFiles()) {
    try {
        f.renameTo("YourText_"+i+".jpg");
        i++;
    } 
    catch (Exception e) 
    {
        System.out.println(e);
    }

}