/**
* 重命名
*
* @param fileName1
* 路径
* @param fileName2
* 路径
*/
public static void rename(String fileName1, String fileName2) {
rename(newFile(fileName1), newFile(fileName2));
}
/**
* 重命名
*
* @param f1
* @param f2
*/
public static void rename(File f1, File f2) {
f1.renameTo(f2);
}
/**
* 修改指定路径的文件后缀名。
*
* @param fileName
* 路径
* @param suffix
* 后缀名
*/
public static void replaceSuffixName(String fileName, String suffix) {
replaceSuffixName(newFile(fileName), suffix);
}
/**
* 修改文件后缀名
*
* @param file
* 对象,
* @param suffix
* 后缀
*/
public static void replaceSuffixName(File file, String suffix) {
StringBuilder name = new StringBuilder();
name.append(getNoSuffixName(file));
name.append(".");
name.append(suffix);
rename(file, newFile(parent(file), name.toString()));
}
/**
* 获取文件的后缀名
*
* @param f
* @return
*/
public static String suffixName(File f) {
String[] sarr = f.getName().split("\\.");
return sarr.length > 1 ? sarr[sarr.length - 1] : null;
}
/**
* 检测路径是否文件
*
* @param f
*/
public static boolean isFile(String fileName) {
return isFile(newFile(fileName));
}
/**
* 根据路径创建文件对象,
*
* @param fileName
* @return
*/
public static File newFile(String fileName) {
return new File(fileName);
}
/**
* 创建路径和文件名创建文件对象
*
* @param path
* 路径
* @param fileName
* 文件名字
* @return
*/
public static File newFile(String path, String fileName) {
return new File(path, fileName);
}
/**
* 返回对象的父目录
*
* @param f
* @return
*/
public static String parent(File f) {
String str = f.getName();
String abso = f.getAbsolutePath();
return abso.substring(0, abso.length() - str.length());
}
/**
* 根据文件和样式获取文件大小的字符串
*
* @param file
* 根据文件路径
* @param size
* 文件大小样式(KB或MB或GB)
* @return
*/
public static String size(File file, String size) {
long len = file.length();
double d = 0;
StringBuilder sb = new StringBuilder();
switch (size) {
case "k":
case "K":
case "kb":
case "Kb":
case "KB":
case "kB":
d = 1.0 * len / 1024;
sb.append(String.format("%.3f", d));
sb.append("MB");
break;
case "m":
case "M":
case "mb":
case "MB":
case "mB":
case "Mb":
d = 1.0 * len / 1024 / 1024;
sb.append(String.format("%.3f", d));
sb.append("MB");
break;
case "g":
case "G":
case "gb":
case "GB":
case "Gb":
case "gB":
d = 1.0 * len / 1024 / 1024 / 1024;
sb.append(String.format("%.3f", d));
sb.append("GB");
break;
default:
sb.append(len);
sb.append("B");
}
return sb.toString();
}