文件名工具 - FileNameUtil
# 文件名工具 - FileNameUtil
简介
FileNameUtil
是 Hutool 提供的一个专门用于文件名操作的工具类,主要功能包括获取文件的主文件名、扩展名、清理无效字符等。此工具类在 5.4.1
之前是 FileUtil
的一部分,后来为了职责分离,单独剥离为 FileNameUtil
。
# 1. 获取文件名
getName
方法用于获取文件的完整名称,包括主文件名和扩展名。
# 示例:获取文件名
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileNameUtil;
import java.io.File;
public class FileNameUtilExample {
public static void main(String[] args) {
// 创建 File 对象
File file = FileUtil.file("/opt/test.txt");
// 获取文件的完整名称(包括扩展名)
String name = FileNameUtil.getName(file);
// 输出文件名
System.out.println("文件名为:" + name);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
getName(File file)
:获取文件的完整名称,包括主文件名和扩展名。file
:要获取名称的文件对象。- 返回值:文件的完整名称(如
test.txt
)。
作用: 用于获取文件的完整名称,适合在需要显示或记录文件名的场景下使用。
实际开发场景: 在文件上传、日志记录等场景中,通常需要获取文件的完整名称进行记录或显示。
# 2. 获取主文件名和扩展名
FileNameUtil
提供了 mainName
和 extName
方法,分别用于获取文件的主文件名(不包括扩展名)和扩展名(不包括 .
)。
# 示例:获取主文件名和扩展名
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileNameUtil;
import java.io.File;
public class FileNameUtilExample {
public static void main(String[] args) {
// 创建 File 对象
File file = FileUtil.file("/opt/test.txt");
// 获取文件的主文件名(不包括扩展名)
String mainName = FileNameUtil.mainName(file);
// 获取文件的扩展名(不包括 ".")
String extName = FileNameUtil.extName(file);
// 输出主文件名和扩展名
System.out.println("主文件名为:" + mainName);
System.out.println("扩展名为:" + extName);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mainName(File file)
:获取文件的主文件名,不包括扩展名。file
:要获取主文件名的文件对象。- 返回值:文件的主文件名(如
test
)。
extName(File file)
:获取文件的扩展名,不包括.
。file
:要获取扩展名的文件对象。- 返回值:文件的扩展名(如
txt
)。
作用: 用于分离文件的主文件名和扩展名,便于在不同场景中处理文件名。
实际开发场景: 在文件上传系统中,通常需要获取文件的主文件名用于存储,获取扩展名用于文件类型的判断。
# 3. 清理无效字符
在 Windows 系统中,文件名中可能包含一些无效字符,如 \
、/
、:
、*
、?
、"
、<
、>
、|
。FileNameUtil
提供了清理这些无效字符的方法,确保文件名的合法性。
# 示例:清理无效字符
import cn.hutool.core.io.file.FileNameUtil;
public class FileNameUtilExample {
public static void main(String[] args) {
// 无效文件名示例
String invalidName = "inva|id:name?.txt";
// 清理无效字符
String validName = FileNameUtil.cleanInvalid(invalidName);
// 输出清理后的文件名
System.out.println("清理后的文件名为:" + validName);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
cleanInvalid(String fileName)
:清理文件名中的无效字符,使其成为合法的文件名。fileName
:要清理的文件名字符串。- 返回值:清理后的合法文件名。
作用: 用于确保文件名在各种操作系统中都是合法的,避免因无效字符导致的文件操作失败。
实际开发场景: 在文件上传或文件名生成过程中,清理用户输入的文件名中的无效字符,确保文件名的合法性。
总结
通过以上示例可以看出 Hutool 的 FileNameUtil
工具类在文件名操作中非常实用,特别适合需要处理文件名、获取文件扩展名以及确保文件名合法性的场景。它提供了简单易用的 API,使得开发者能够更加专注于业务逻辑的实现,同时避免了文件名处理中的常见问题。