应用说明:将当前目录下及所有子文件夹中的.jad文件全部修改成.java文件。因为用DJ反编译以后没找到直接输出成.java文件设置,所以使用了该命令,还是挺好用的,不过这种语法结构实在是恶心,总是忘记,所以记录下来也 给有同样需求的朋友们提供一点方便。 命
1、提取文件后缀名使用#、## 1 2 3 4 5 6 7 8 9 count=1; for name in `find . -type f -iname "*" ` do new =image-$count.${name##*.} //提取后缀名 mv $name $ new let count++ done 上面的${var##*.}表示去掉var
今天有个需求,想把某个文件夹下所有后缀名为jsp的更改为ftl,本来想用bat实现对bat的高级语法也不太了解,后来发现还需要递归遍历所有的子文件夹,所以用java实现了一个功能一样的代码,有需要的牛人可以下载修改为自己想要的。
这样可以兼容windows和linux。
package com.zuidaima.fileutil;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
**@author www.zuidaima.com
**/
public class BatchRename {
public static void main(String[] args) {
String dir = "c:/jsp/";
File file = new File(dir);
String srcSuffix = "jsp";
String dstSuffix = "ftl";
List paths = listPath(file, srcSuffix);
for (String path : paths) {
File srcFile = new File(path);
String name = srcFile.getName();
int idx = name.lastIndexOf(".");
String prefix = name.substring(0, idx);
File dstFile = new File(srcFile.getParent() + "/" + prefix + "."
+ dstSuffix);
if (dstFile.exists()) {// 此处代码注意修改为自己想要的逻辑
srcFile.delete();
continue;
}
srcFile.renameTo(dstFile);
}
}
/**
* 获取指定路径下的所有符合条件的路径
*/
private static List listPath(File path, String acceptSuffix) {
List list = new ArrayList();
File[] files = path.listFiles();
Arrays.sort(files);
for (File file : files) {
if (file.isDirectory()) {
List _list = listPath(file, acceptSuffix);
list.addAll(_list);
} else {
String name = file.getName();
int idx = name.lastIndexOf(".");
String suffix = name.substring(idx + 1);
if (suffix.equals(acceptSuffix)) {
list.add(file.getAbsolutePath());
}
}
}
return list;
}
}