好吧,我有一个文件夹,里面有大约2000张图片,都有奇怪的名字,我想循环整个过程,并将它们重命名为"something"+数字(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)));
}
}
}
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
这真的很简单
你需要首先在中找到你的文件所在的目录
File dir = new File("C:\yourdirectory");
现在,您需要循环浏览目录中的每个文件并对其进行重命名。每个循环最好使用一个。如果您想在循环之前检查指定的目录是否真的是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);
}
}