apache的文件名工具类FilenameUtils

发布时间 2023-11-28 08:54:32作者: 残城碎梦

org.apache.commons.io.FilenameUtils。

FileUtils和FilenameUtils分别是Apache对文件名和文件的封装,两者可以配合使用。

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>

合并文件路径和文件名称为一个全路径

使用此方法,相对于字符串手动拼接的优势是:无需考虑路径后面是否要加斜杠,无论是没有斜杠还是多了斜杠,程序会自动处理成正确格式。

String fileName = FilenameUtils.concat("D:///", "1.txt");
System.out.println(fileName);
//输出:D:\\1.txt

获取绝对路径

String fullPath = FilenameUtils.getFullPath("D:\\1\\1.txt");
System.out.println(fullPath); //不包含文件名本身
//输出:D:\1\

获取相对路径

String path = FilenameUtils.getPath("D:\\1\\1.txt");
//输出:1\

获取前缀

String prefix = FilenameUtils.getPrefix("D:\\1.txt");
//输出:D:\

获取扩展名

String extension = FilenameUtils.getExtension("D:\\1.txt");
//输出:txt

获取无后缀名称

String baseName = FilenameUtils.getBaseName("D:\\1.txt");
//输出:1

获取文件名

String name = FilenameUtils.getName("D:\\1.txt");
//输出:1.txt

判断目录下是否包含指定文件或目录

boolean isContain = FilenameUtils.directoryContains("F:/1/", "1.txt");

获取最后一个/的位置

int index = FilenameUtils.indexOfLastSeparator("F:/1/");
//输出:4

判断文件扩展名是指定扩展名

//1.是否是指定扩展名
boolean isExtension = FilenameUtils.isExtension("F:/1/1.txt", "txt");
boolean isExtension = FilenameUtils.isExtension("F:/1/1.txt", ".txt");
//输出:true false
//2.是否在扩展名列表中
List<String> extensions = new ArrayList<>();
extensions.add("jpg");
extensions.add("png");
boolean isExtension = FilenameUtils.isExtension("F:/1/1.png", extensions);
//输出:false