唯一依赖org.apache.commons.lang.StringUtils请下载相关包
package com.wesley.framework.commen.io;
import org.apache.commons.lang.StringUtils;
/**
* @author it.zl
*
*/
public class PathUtil {
public static final String DOT = ".";
public static final String SLASH_ONE = "/";
public static final String SLASH_TWO = "\\";
/**
* 获取没有扩展名的文件名
* @param fileName
* @return
*/
public static String getWithoutExtension(String fileName) {
String ext = StringUtils.substring(fileName, 0,
StringUtils.lastIndexOf(fileName, DOT));
return StringUtils.trimToEmpty(ext);
}
/**
* 获取扩展名
* @param fileName
* @return
*/
public static String getExtension(String fileName) {
if (StringUtils.INDEX_NOT_FOUND == StringUtils.indexOf(fileName, DOT))
return StringUtils.EMPTY;
String ext = StringUtils.substring(fileName,
StringUtils.lastIndexOf(fileName, DOT));
return StringUtils.trimToEmpty(ext);
}
/**
* 判断是否同为扩展名
* @param fileName
* @param ext
* @return
*/
public static boolean isExtension(String fileName, String ext) {
return StringUtils.equalsIgnoreCase(getExtension(fileName), ext);
}
/**
* 判断是否存在扩展名
* @param fileName
* @return
*/
public static boolean hasExtension(String fileName) {
return !isExtension(fileName, StringUtils.EMPTY);
}
/**
* 得到正确的扩展名
* @param ext
* @return
*/
public static String trimExtension(String ext) {
return getExtension(DOT + ext);
}
/**
* 向path中填充扩展名(如果没有或不同的话)
* @param fileName
* @param ext
* @return
*/
public static String fillExtension(String fileName, String ext) {
if (!hasExtension(fileName)) {
return fileName + getExtension(ext);
}
if (!isExtension(fileName, ext)) {
return getWithoutExtension(fileName) + getExtension(ext);
}
return fileName;
}
/**
* 判断是否是文件PATH
* @param fileName
* @return
*/
public static boolean isFile(String fileName) {
return hasExtension(fileName);
}
/**
* 判断是否是文件夹PATH
* @param fileName
* @return
*/
public static boolean isFolder(String fileName) {
return !hasExtension(fileName);
}
/**
* 链接PATH前处理
* @param path
* @return
*/
public static String trimLeftPath(String path) {
if (isFile(path))
return path;
path = StringUtils.trimToEmpty(path);
String top = StringUtils.left(path, 1);
if (StringUtils.equalsIgnoreCase(SLASH_ONE, top)
|| StringUtils.equalsIgnoreCase(SLASH_TWO, top))
return StringUtils.substring(path, 1);
return path;
}
/**
* 链接PATH后处理
* @param path
* @return
*/
public static String trimRightPath(String path) {
if (isFile(path))
return path;
path = StringUtils.trimToEmpty(path);
String bottom = StringUtils.right(path, 1);
if (StringUtils.equalsIgnoreCase(SLASH_ONE, bottom)
|| StringUtils.equalsIgnoreCase(SLASH_TWO, bottom))
return StringUtils.substring(path, 0, path.length() - 2);
return path + SLASH_ONE;
}
/**
* 链接PATH前后处理,得到准确的链接PATH
* @param path
* @return
*/
public static String trimPath(String path) {
path = trimLeftPath(path);
path = trimRightPath(path);
return path;
}
/**
* 通过数组完整链接PATH
* @param paths
* @return
*/
public static String bulidFullPath(String... paths) {
StringBuffer sb = new StringBuffer();
for (String path : paths) {
sb.append(trimPath(path));
}
return sb.toString();
}
public static void main(String[] args) {
String fileName = "H:\\Intel\\Logs\\12312312.log";
System.out.println(PathUtil.fillExtension(fileName, ".dit"));
String[] paths = { "win", "t", "a", "teswe.te" };
System.out.println(PathUtil.bulidFullPath(paths));
}
}