产生原因:
为了在CSDN上传一系列图片,但是。上传第一张在最下方。。🙃
所以写了个方法批量重命名图片
解决方案:
为了将原来的图片插入到csdn时候是正序,所以修改图片名。需要把1.png变成最大,36变成最小。
处理方法:
先截取,因为我的图片前面还有一大堆08191643…节点设置为未被访问_36
。先把数字截取出来。
因为只有36张图片,所以直接用36减当前数值得到差n,再用36加上差n,这样获得了重新排序
图片原来的名字
修改后的名字
@PostMapping(value="/test")
public void test(){
//修改图片的名字
//拿到文件夹的路径
String folderPath = "E:\\picture";
File file = new File(folderPath);
String dirPath = file.getAbsolutePath();
if (file.isDirectory()) {
File[] files = file.listFiles();
//获取此目录下的文件列表
for (File fileFrom : files) {
//得到单个文件名
String fromFile = fileFrom.getName();
int num = 0;
int newnum = 0;
int p = 0;
if (fromFile.contains("_")) {
fromFile = fromFile.substring((fromFile.lastIndexOf("_")+1));
fromFile = fromFile.substring(0,fromFile.lastIndexOf("."));
//要修改的新名字
num = Integer.parseInt(fromFile);
newnum = 36-num;
p = 36+newnum;
fromFile = fromFile.replace(fromFile, String.valueOf(p));
String toFileName = dirPath + "/" + fromFile;
//文件名的格式还是之前的格式
File toFile = new File(toFileName+".jpg");
if (fileFrom.exists() && !toFile.exists()) {
//开始更名
fileFrom.renameTo(toFile);
System.out.println(toFile);
}
}
}
}
}