[ 常用方法 ]
String directory = "C://Users/han/Desktop/新建文件夹";
String fileName = "文本ABC.txt";
String fileName2 = "文本abc.txt";
String filePath = directory + "/" + fileName;
FilenameUtils.concat => 合并目录和文件名为文件全路径
System.out.println(FilenameUtils.concat(directory, fileName));
// C:\\Users\han\Desktop\新建文件夹\文本ABC.txt
FilenameUtils.directoryContains => 判断目录下是否包含指定文件或目录
System.out.println(FilenameUtils.directoryContains(directory, fileName));
// false
FilenameUtils.equals => 检查两个文件名是否完全相等
System.out.println(FilenameUtils.equals(fileName, fileName2));
// false
FilenameUtils.equals => 检查两个文件名是否相等,可选地对大小写敏感性进行规范化并提供控制。
[文件名1] [文件名2] [是否对文件名进行规范化] [使用什么大小写敏感规则(不同系统),null表示大小写敏感]
System.out.println(FilenameUtils.equals(fileName,
fileName2,true, IOCase.SYSTEM));
// true
FilenameUtils.equalsNormalized => 检查规范化后的两个文件名是否相等。
System.out.println(FilenameUtils.equalsNormalized(fileName, fileName2));
// false
FilenameUtils.equalsNormalizedOnSystem => 使用系统的大小写规则,检查规范化后的两个文件名是否相等。
System.out.println(FilenameUtils.equalsNormalizedOnSystem(fileName, fileName2));
// true
FilenameUtils.equalsOnSystem => 使用系统的大小写规则检查两个文件名是否相等。
System.out.println(FilenameUtils.equalsOnSystem(fileName, fileName2));
// true
FilenameUtils.getName => 获取目录名 | 文件名 有后缀,获取目录名不要在路径后面加/,否则返回""
System.out.println(FilenameUtils.getName(directory));
// 新建文件夹
System.out.println(FilenameUtils.getName(filePath));
// 文本ABC.txt
FilenameUtils.getBaseName => 获取目录名 | 文件名 没有后缀,获取目录名不要在路径后面加/,否则返回""
System.out.println(FilenameUtils.getBaseName(filePath));
// 文本ABC
FilenameUtils.getExtension => 获取文件后缀
System.out.println(FilenameUtils.getExtension(filePath));
// txt
FilenameUtils.getFullPath => 从完整文件名(即前缀+ path)获取完整路径。
System.out.println(FilenameUtils.getFullPath(filePath));
// C://Users/han/Desktop/新建文件夹/
FilenameUtils.getFullPathNoEndSeparator => 从完整文件名(即前缀+ path)获取完整路径,并排除最后的目录分隔符。
System.out.println(FilenameUtils.getFullPathNoEndSeparator(filePath));
// C://Users/han/Desktop/新建文件夹
FilenameUtils.getPath => 从排除前缀的完整文件名中获取路径。
System.out.println(FilenameUtils.getPath(filePath));
// /Users/han/Desktop/新建文件夹/
FilenameUtils.getPathNoEndSeparator => 获取来自完整文件名的路径,该文件名不包含前缀,也不包含最终的目录分隔符。
System.out.println(FilenameUtils.getPathNoEndSeparator(filePath));
// /Users/han/Desktop/新建文件夹
FilenameUtils.getPrefix => 从完整文件名(如C:/或~/)中获取前缀
System.out.println(FilenameUtils.getPrefix(filePath));
// C:/
FilenameUtils.getPrefixLength => 返回文件名前缀的长度,如C:/或~/
System.out.println(FilenameUtils.getPrefixLength(filePath));
// 3
FilenameUtils.indexOfExtension => 返回最后一个扩展分隔符的索引,它是一个点(最后一个点[.]的索引,)。
System.out.println(FilenameUtils.indexOfExtension(filePath));
// 33
FilenameUtils.indexOfLastSeparator => 返回最后一个目录分隔符[/]的索引。
System.out.println(FilenameUtils.indexOfLastSeparator(filePath));
// 27
FilenameUtils.isExtension => 判断文件扩展名是否为指定扩展名
System.out.println(FilenameUtils.isExtension(fileName, "txt"));
// true
System.out.println(FilenameUtils.isExtension(fileName, new String[]{"xls", "doc"}));
// false
System.out.println(FilenameUtils.isExtension(fileName, new ArrayList<String>() {
{
add("txt");
add("doc");
}
}));
// true
FilenameUtils.normalize => 规范化路径,删除双点和单点路径步骤。
System.out.println(FilenameUtils.normalize(filePath));
// C:\\Users\han\Desktop\新建文件夹\文本ABC.txt
FilenameUtils.normalize => 规范化路径,删除双点和单点路径步骤。true使用unix分隔符,false使用windows分隔符。
System.out.println(FilenameUtils.normalize(filePath, true));
// C://Users/han/Desktop/新建文件夹/文本ABC.txt
System.out.println(FilenameUtils.normalize(filePath, false));
// C:\\Users\han\Desktop\新建文件夹\文本ABC.txt
FilenameUtils.separatorsToSystem => 将所有分隔符转换为系统分隔符
System.out.println(FilenameUtils.separatorsToSystem(filePath));
// C:\\Users\han\Desktop\新建文件夹\文本ABC.txt
FilenameUtils.separatorsToUnix => 将所有分隔符转换为正斜杠的Unix分隔符
System.out.println(FilenameUtils.separatorsToUnix(filePath));
// C://Users/han/Desktop/新建文件夹/文本ABC.txt
FilenameUtils.separatorsToWindows => 将所有分隔符转换为反斜杠的Windows分隔符。
System.out.println(FilenameUtils.separatorsToWindows(filePath));
// C:\\Users\han\Desktop\新建文件夹\文本ABC.txt
FilenameUtils.removeExtension => 从文件名中删除扩展名。
System.out.println(FilenameUtils.removeExtension(filePath));
// C://Users/han/Desktop/新建文件夹/文本ABC
FilenameUtils.wildcardMatch => 判断文件扩展名是否和指定规则匹配,大小写敏感
System.out.println(FilenameUtils.wildcardMatch(filePath, "*.TXT"));
// false
FilenameUtils.wildcardMatch => 判断文件扩展名是否和指定规则匹配,大小写不敏感
System.out.println(FilenameUtils.wildcardMatch(filePath, "*.TXT", IOCase.INSENSITIVE));
// true
FilenameUtils.wildcardMatchOnSystem => 判断文件扩展名是否和指定规则匹配,根据系统判断敏感型:windows:不敏感;linux:敏感
System.out.println(FilenameUtils.wildcardMatchOnSystem(filePath, "*.TXT"));
// true