好的,所以我有一个大约有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)));
}
}
}
答案 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);
}
}