All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.hutool.core.io.file.FileSystemUtil Maven / Gradle / Ivy

Go to download

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

There is a newer version: 5.8.34
Show newest version
package cn.hutool.core.io.file;

import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;

import java.io.IOException;
import java.net.URI;
import java.nio.charset.Charset;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap;

/**
 * {@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的{@link FileSystem},默认UTF-8编码 * * @param path 文件路径,可以是目录或Zip文件等 * @return {@link FileSystem} */ public static FileSystem createZip(String path) { return createZip(path, null); } /** * 创建 Zip的{@link FileSystem} * * @param path 文件路径,可以是目录或Zip文件等 * @param charset 编码 * @return {@link FileSystem} */ public static FileSystem createZip(String path, Charset charset) { if(null == charset){ charset = CharsetUtil.CHARSET_UTF_8; } final HashMap env = new HashMap<>(); env.put("create", "true"); env.put("encoding", charset.name()); try { return FileSystems.newFileSystem( URI.create("jar:" + Paths.get(path).toUri()), env); } 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); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy