版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35027520/article/details/83005087
今天分到一个任务,让我调查一下怎样访问指定文件夹,修改文件夹及下级文件夹目录下所有符合条件的图片,修改图片名称后,将图片移动到新的目标文件夹,如果新文件夹存在则清空该文件夹下所有子文件夹和文件,如果不存在则创建新的目标文件夹,通过一番调查,简单的实现了这个功能,现在将测试代码分享如下。
1、创建delAllFile(String path)方法 实现对目标文件夹的要求:存在则清空;不存在则创建
public static void delAllFile(String path) {
File file = new File(path);
//判断目标文件夹不存在
if (!file.exists() || !file.isDirectory()) {
//创建目标文件夹
file.mkdirs();
}
String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++) {
if (path.endsWith(File.separator)) {
temp = new File(path + tempList[i]);
} else {
temp = new File(path + File.separator + tempList[i]);
}
//如果是文件 选择删除
if (temp.isFile()) {
temp.delete();
}
//如果是文件夹
if (temp.isDirectory()) {
// 先删除文件夹里面的文件
delAllFile(path + "/" + tempList[i]);
// 再删除空文件夹
delFolder(path + "/" + tempList[i]);
}
}
}
2、创建delFolder(String path)方法 用来删除文件夹
public static void delFolder(String folderPath) {
try {
// 首先调用delAllFile方法清空文件夹
delAllFile(folderPath);
String filePath = folderPath;
filePath = filePath.toString();
File myFilePath = new File(filePath);
// 删除空文件夹
myFilePath.delete();
} catch (Exception e) {
e.printStackTrace();
}
}
3、创建renameMethod(String path1,String path2) 实现重命名并保存到指定文件夹的要求
public static void renameMethod(String path1, String path2) {
//path1 为文件原有路径
File file = new File(path1);
//path2 为文件目标路径
File newfile = new File(path2);
// 目录文件夹绝对路径
String newPath = newfile.getAbsolutePath();
//isDirectory() 判断是否是文件夹
if (file.isDirectory()) {
// 获取此目录下的文件列表
File[] files = file.listFiles();
for (File fileFrom : files) {
// 得到单个文件名
String fromFile = fileFrom.getName();
if (fileFrom.isDirectory()) {
//递归 如果是文件夹 继续调用本方法
renameMethod(fileFrom.getPath(), path2);
}
//测试中 我以文件后缀名".jpg"为条件 找出符合条件的图片进行重命名操作
if (fromFile.endsWith(".jpg")) {
//文件名后追加test 生成目标文件
fromFile = fromFile.substring(0, fromFile.lastIndexOf(".jpg")) + "test.jpg";
String toFileName = newPath + "/" + fromFile;
File toFile = new File(toFileName);
//原有文件存在且目标文件不存在
if (fileFrom.exists() && !toFile.exists()) {
// 开始更名
fileFrom.renameTo(toFile);
}
}
}
}
}
4、生成main方法调用renameMethod(String path1,String path2)
public static void main(String[] args) {
//定义文件原有路径和新生成文件的目标路径
String path1 = "C:\\Users\\ibm\\Desktop\\path1";
String path2 = "C:\\Users\\ibm\\Desktop\\path2 ";
//判断目标文件夹是否存在 存在则清空 不存在则创建
delAllFile(path2);
renameMethod(path1,path2);
}