cn.hutool.core.io.FileUtil.normalize()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(6.3k)|赞(0)|评价(0)|浏览(437)

本文整理了Java中cn.hutool.core.io.FileUtil.normalize()方法的一些代码示例,展示了FileUtil.normalize()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。FileUtil.normalize()方法的具体详情如下:
包路径:cn.hutool.core.io.FileUtil
类名称:FileUtil
方法名:normalize

FileUtil.normalize介绍

[英]修复路径
如果原路径尾部有分隔符,则保留为标准分隔符(/),否则不保留

    1. 统一用 /
    1. 多个 / 转换为一个 /
    1. 去除两边空格
    1. .. 和 . 转换为绝对路径,当..多于已有路径时,直接返回根路径
      栗子:
"/foo//" =》 "/foo/" 
"/foo/./" =》 "/foo/" 
"/foo/../bar" =》 "/bar" 
"/foo/../bar/" =》 "/bar/" 
"/foo/../bar/../baz" =》 "/baz" 
"/../" =》 "/" 
"foo/bar/.." =》 "foo" 
"foo/../bar" =》 "bar" 
"foo/../../bar" =》 "bar" 
"//server/foo/../bar" =》 "/server/bar" 
"//server/../bar" =》 "/bar" 
"C:\\foo\\..\\bar" =》 "C:/bar" 
"C:\\..\\bar" =》 "C:/bar" 
"~/foo/../bar/" =》 "~/bar/" 
"~/../bar" =》 "bar"

[中]

代码示例

代码示例来源:origin: looly/hutool

/**
 * 获得ClassPath,这个ClassPath路径会文件路径被标准化处理
 * 
 * @param isEncoded 是否编码路径中的中文
 * @return ClassPath
 * @since 3.2.1
 */
public static String getClassPath(boolean isEncoded) {
  final URL classPathURL = getClassPathURL();
  String url = isEncoded ? classPathURL.getPath() : URLUtil.getDecodedPath(classPathURL);
  return FileUtil.normalize(url);
}

代码示例来源:origin: looly/hutool

/**
 * 获得ClassPath,这个ClassPath路径会文件路径被标准化处理
 * 
 * @param isEncoded 是否编码路径中的中文
 * @return ClassPath
 * @since 3.2.1
 */
public static String getClassPath(boolean isEncoded) {
  final URL classPathURL = getClassPathURL();
  String url = isEncoded ? classPathURL.getPath() : URLUtil.getDecodedPath(classPathURL);
  return FileUtil.normalize(url);
}

代码示例来源:origin: looly/hutool

/**
 * 获得绝对路径Path<br>
 * 对于不存在的资源,返回拼接后的绝对路径
 * 
 * @return 绝对路径path
 */
public final String getAbsolutePath() {
  if (FileUtil.isAbsolutePath(this.path)) {
    return this.path;
  }
  // url在初始化的时候已经断言,此处始终不为null
  return FileUtil.normalize(URLUtil.getDecodedPath(this.url));
}

代码示例来源:origin: looly/hutool

/**
 * 获得绝对路径Path<br>
 * 对于不存在的资源,返回拼接后的绝对路径
 * 
 * @return 绝对路径path
 */
public final String getAbsolutePath() {
  if (FileUtil.isAbsolutePath(this.path)) {
    return this.path;
  }
  // url在初始化的时候已经断言,此处始终不为null
  return FileUtil.normalize(URLUtil.getDecodedPath(this.url));
}

代码示例来源:origin: looly/hutool

normalPath = StrUtil.EMPTY;
} else {
  normalPath = normalize(path);
  if (isAbsolutePath(normalPath)) {
if (null != url) {
  return FileUtil.normalize(URLUtil.getDecodedPath(url));
return normalize(classPath.concat(path));

代码示例来源:origin: looly/hutool

normalPath = StrUtil.EMPTY;
} else {
  normalPath = normalize(path);
  if (isAbsolutePath(normalPath)) {
if (null != url) {
  return FileUtil.normalize(URLUtil.getDecodedPath(url));
return normalize(classPath.concat(path));

代码示例来源:origin: looly/hutool

/**
   * 标准化Path格式
   * 
   * @param path Path
   * @return 标准化后的path
   */
  private String normalizePath(String path) {
    // 标准化路径
    path = FileUtil.normalize(path);
    path = StrUtil.removePrefix(path, StrUtil.SLASH);

    Assert.isFalse(FileUtil.isAbsolutePath(path), "Path [{}] must be a relative path !", path);
    return path;
  }
}

代码示例来源:origin: looly/hutool

/**
   * 标准化Path格式
   * 
   * @param path Path
   * @return 标准化后的path
   */
  private String normalizePath(String path) {
    // 标准化路径
    path = FileUtil.normalize(path);
    path = StrUtil.removePrefix(path, StrUtil.SLASH);

    Assert.isFalse(FileUtil.isAbsolutePath(path), "Path [{}] must be a relative path !", path);
    return path;
  }
}

代码示例来源:origin: looly/hutool

/**
 * 获得相对子路径,忽略大小写
 * 
 * 栗子:
 * 
 * <pre>
 * dirPath: d:/aaa/bbb    filePath: d:/aaa/bbb/ccc     =》    ccc
 * dirPath: d:/Aaa/bbb    filePath: d:/aaa/bbb/ccc.txt     =》    ccc.txt
 * dirPath: d:/Aaa/bbb    filePath: d:/aaa/bbb/     =》    ""
 * </pre>
 * 
 * @param dirPath 父路径
 * @param filePath 文件路径
 * @return 相对子路径
 */
public static String subPath(String dirPath, String filePath) {
  if (StrUtil.isNotEmpty(dirPath) && StrUtil.isNotEmpty(filePath)) {
    dirPath = StrUtil.removeSuffix(normalize(dirPath), "/");
    filePath = normalize(filePath);
    final String result = StrUtil.removePrefixIgnoreCase(filePath, dirPath);
    return StrUtil.removePrefix(result, "/");
  }
  return filePath;
}

代码示例来源:origin: looly/hutool

/**
 * 获得相对子路径,忽略大小写
 * 
 * 栗子:
 * 
 * <pre>
 * dirPath: d:/aaa/bbb    filePath: d:/aaa/bbb/ccc     =》    ccc
 * dirPath: d:/Aaa/bbb    filePath: d:/aaa/bbb/ccc.txt     =》    ccc.txt
 * dirPath: d:/Aaa/bbb    filePath: d:/aaa/bbb/     =》    ""
 * </pre>
 * 
 * @param dirPath 父路径
 * @param filePath 文件路径
 * @return 相对子路径
 */
public static String subPath(String dirPath, String filePath) {
  if (StrUtil.isNotEmpty(dirPath) && StrUtil.isNotEmpty(filePath)) {
    dirPath = StrUtil.removeSuffix(normalize(dirPath), "/");
    filePath = normalize(filePath);
    final String result = StrUtil.removePrefixIgnoreCase(filePath, dirPath);
    return StrUtil.removePrefix(result, "/");
  }
  return filePath;
}

代码示例来源:origin: cn.hutool/hutool-all

/**
 * 获得ClassPath,这个ClassPath路径会文件路径被标准化处理
 * 
 * @param isEncoded 是否编码路径中的中文
 * @return ClassPath
 * @since 3.2.1
 */
public static String getClassPath(boolean isEncoded) {
  final URL classPathURL = getClassPathURL();
  String url = isEncoded ? classPathURL.getPath() : URLUtil.getDecodedPath(classPathURL);
  return FileUtil.normalize(url);
}

代码示例来源:origin: cn.hutool/hutool-all

/**
 * 获得绝对路径Path<br>
 * 对于不存在的资源,返回拼接后的绝对路径
 * 
 * @return 绝对路径path
 */
public final String getAbsolutePath() {
  if (FileUtil.isAbsolutePath(this.path)) {
    return this.path;
  }
  // url在初始化的时候已经断言,此处始终不为null
  return FileUtil.normalize(URLUtil.getDecodedPath(this.url));
}

代码示例来源:origin: cn.hutool/hutool-all

normalPath = StrUtil.EMPTY;
} else {
  normalPath = normalize(path);
  if (isAbsolutePath(normalPath)) {
if (null != url) {
  return FileUtil.normalize(URLUtil.getDecodedPath(url));
return normalize(classPath.concat(path));

代码示例来源:origin: cn.hutool/hutool-all

/**
   * 标准化Path格式
   * 
   * @param path Path
   * @return 标准化后的path
   */
  private String normalizePath(String path) {
    // 标准化路径
    path = FileUtil.normalize(path);
    path = StrUtil.removePrefix(path, StrUtil.SLASH);

    Assert.isFalse(FileUtil.isAbsolutePath(path), "Path [{}] must be a relative path !", path);
    return path;
  }
}

代码示例来源:origin: cn.hutool/hutool-all

/**
 * 获得相对子路径,忽略大小写
 * 
 * 栗子:
 * 
 * <pre>
 * dirPath: d:/aaa/bbb    filePath: d:/aaa/bbb/ccc     =》    ccc
 * dirPath: d:/Aaa/bbb    filePath: d:/aaa/bbb/ccc.txt     =》    ccc.txt
 * dirPath: d:/Aaa/bbb    filePath: d:/aaa/bbb/     =》    ""
 * </pre>
 * 
 * @param dirPath 父路径
 * @param filePath 文件路径
 * @return 相对子路径
 */
public static String subPath(String dirPath, String filePath) {
  if (StrUtil.isNotEmpty(dirPath) && StrUtil.isNotEmpty(filePath)) {
    dirPath = StrUtil.removeSuffix(normalize(dirPath), "/");
    filePath = normalize(filePath);
    final String result = StrUtil.removePrefixIgnoreCase(filePath, dirPath);
    return StrUtil.removePrefix(result, "/");
  }
  return filePath;
}

相关文章