diff --git a/hutool-core/src/main/java/cn/hutool/core/io/file/FileSystemUtil.java b/hutool-core/src/main/java/cn/hutool/core/io/file/FileSystemUtil.java new file mode 100644 index 000000000..65dc37a5f --- /dev/null +++ b/hutool-core/src/main/java/cn/hutool/core/io/file/FileSystemUtil.java @@ -0,0 +1,47 @@ +package cn.hutool.core.io.file; + +import cn.hutool.core.io.IORuntimeException; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; + +import java.io.IOException; +import java.nio.file.FileSystem; +import java.nio.file.FileSystems; +import java.nio.file.Path; +import java.nio.file.Paths; + +/** + * {@link FileSystem}相关工具类封装
+ * 参考:https://blog.csdn.net/j16421881/article/details/78858690 + * + * @author looly + * @since 5.7.15 + */ +public class FileSystemUtil { + + /** + * 创建 {@link FileSystem} + * + * @param path 文件路径,可以是目录或Zip文件等 + * @return {@link FileSystem} + */ + public static FileSystem create(String path) { + try { + return FileSystems.newFileSystem( + Paths.get(path).toUri(), + MapUtil.of("create", "true")); + } catch (IOException e) { + throw new IORuntimeException(e); + } + } + + /** + * 获取目录的根路径,或Zip文件中的根路径 + * + * @param fileSystem {@link FileSystem} + * @return 根 {@link Path} + */ + public static Path getRoot(FileSystem fileSystem) { + return fileSystem.getPath(StrUtil.SLASH); + } +}