com.alibaba.citrus.util.FileUtil.normalizePath()方法的使用及代码示例

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

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

FileUtil.normalizePath介绍

[英]规格化路径。规则如下:

  1. 路径为空,则返回""
  2. 将所有backslash("\")转化成slash("/")。
  3. 去除重复的"/"或"\"。
  4. 去除".",如果发现"..",则向上朔一级目录。
  5. 空绝对路径返回"/",空相对路径返回""。
  6. 保留路径末尾的"/"(如果有的话,除了空路径)。
  7. 对于绝对路径,如果".."上朔的路径超过了根目录,则看作非法路径,抛出异常。
    [中]规格化路径。规则如下:
    1.路径为空,则返回""
    1.将所有反斜杠(\)转化成斜杠(“/”)
    1.去除重复的"/"或"\"。
    1.去除".",如果发现"..",则向上朔一级目录。
    1.空绝对路径返回"/",空相对路径返回""。
    1.保留路径末尾的"/"(如果有的话,除了空路径)。
    1.对于绝对路径,如果".."上朔的路径超过了根目录,则看作非法路径,抛出异常。

代码示例

代码示例来源:origin: webx/citrus

/**
 * 规格化路径。规则如下:
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>空绝对路径返回"/",空相对路径返回""。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径)。</li>
 * <li>对于绝对路径,如果".."上朔的路径超过了根目录,则看作非法路径,抛出异常。</li>
 * </ol>
 *
 * @param path 要规格化的路径
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizePath(String path) throws IllegalPathException {
  return normalizePath(path, false, false, false);
}

代码示例来源:origin: webx/citrus

/**
 * 规格化路径。规则如下:
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>空绝对路径返回"/",空相对路径返回""。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径)。</li>
 * <li>对于绝对路径,如果".."上朔的路径超过了根目录,则看作非法路径,抛出异常。</li>
 * </ol>
 *
 * @param path 要规格化的路径
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizePath(String path) throws IllegalPathException {
  return normalizePath(path, false, false, false);
}

代码示例来源:origin: webx/citrus

/**
 * 规格化路径。规则如下:
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>空绝对路径返回"/",空相对路径返回""。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径)。</li>
 * <li>对于绝对路径,如果".."上朔的路径超过了根目录,则看作非法路径,抛出异常。</li>
 * </ol>
 *
 * @param path 要规格化的路径
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizePath(String path) throws IllegalPathException {
  return normalizePath(path, false, false, false);
}

代码示例来源:origin: webx/citrus

/**
 * 规格化路径。规则如下:
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>空绝对路径返回"/",空相对路径返回""。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径和强制指定<code>removeTrailingSlash==true</code>)。</li>
 * <li>对于绝对路径,如果".."上朔的路径超过了根目录,则看作非法路径,抛出异常。</li>
 * </ol>
 *
 * @param path                要规格化的路径
 * @param removeTrailingSlash 是否强制移除末尾的<code>"/"</code>
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizePath(String path, boolean removeTrailingSlash) throws IllegalPathException {
  return normalizePath(path, false, false, removeTrailingSlash);
}

代码示例来源:origin: webx/citrus

/**
 * 规格化绝对路径。
 * <p>
 * 该方法返回以“<code>/</code>”开始的绝对路径。转换规则如下:
 * </p>
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径)。</li>
 * <li>对于绝对路径,如果".."上朔的路径超过了根目录,则看作非法路径,抛出异常。</li>
 * </ol>
 *
 * @param path 要规格化的路径
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizeAbsolutePath(String path) throws IllegalPathException {
  return normalizePath(path, true, false, false);
}

代码示例来源:origin: webx/citrus

/**
 * 规格化相对路径。
 * <p>
 * 该方法返回不以“<code>/</code>”开始的相对路径。转换规则如下:
 * </p>
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>空相对路径返回""。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径)。</li>
 * </ol>
 *
 * @param path 要规格化的路径
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizeRelativePath(String path) throws IllegalPathException {
  return normalizePath(path, false, true, false);
}

代码示例来源:origin: webx/citrus

/**
 * 规格化路径。规则如下:
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>空绝对路径返回"/",空相对路径返回""。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径和强制指定<code>removeTrailingSlash==true</code>)。</li>
 * <li>对于绝对路径,如果".."上朔的路径超过了根目录,则看作非法路径,抛出异常。</li>
 * </ol>
 *
 * @param path                要规格化的路径
 * @param removeTrailingSlash 是否强制移除末尾的<code>"/"</code>
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizePath(String path, boolean removeTrailingSlash) throws IllegalPathException {
  return normalizePath(path, false, false, removeTrailingSlash);
}

代码示例来源:origin: webx/citrus

/**
 * 规格化路径。规则如下:
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>空绝对路径返回"/",空相对路径返回""。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径和强制指定<code>removeTrailingSlash==true</code>)。</li>
 * <li>对于绝对路径,如果".."上朔的路径超过了根目录,则看作非法路径,抛出异常。</li>
 * </ol>
 *
 * @param path                要规格化的路径
 * @param removeTrailingSlash 是否强制移除末尾的<code>"/"</code>
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizePath(String path, boolean removeTrailingSlash) throws IllegalPathException {
  return normalizePath(path, false, false, removeTrailingSlash);
}

代码示例来源:origin: webx/citrus

/**
 * 规格化相对路径。
 * <p>
 * 该方法返回不以“<code>/</code>”开始的相对路径。转换规则如下:
 * </p>
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>空相对路径返回""。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径和强制指定<code>removeTrailingSlash==true</code>)。</li>
 * </ol>
 *
 * @param path                要规格化的路径
 * @param removeTrailingSlash 是否强制移除末尾的<code>"/"</code>
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizeRelativePath(String path, boolean removeTrailingSlash) throws IllegalPathException {
  return normalizePath(path, false, true, removeTrailingSlash);
}

代码示例来源:origin: webx/citrus

/**
 * 规格化绝对路径。
 * <p>
 * 该方法返回以“<code>/</code>”开始的绝对路径。转换规则如下:
 * </p>
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径)。</li>
 * <li>对于绝对路径,如果".."上朔的路径超过了根目录,则看作非法路径,抛出异常。</li>
 * </ol>
 *
 * @param path 要规格化的路径
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizeAbsolutePath(String path) throws IllegalPathException {
  return normalizePath(path, true, false, false);
}

代码示例来源:origin: webx/citrus

/**
 * 规格化相对路径。
 * <p>
 * 该方法返回不以“<code>/</code>”开始的相对路径。转换规则如下:
 * </p>
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>空相对路径返回""。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径)。</li>
 * </ol>
 *
 * @param path 要规格化的路径
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizeRelativePath(String path) throws IllegalPathException {
  return normalizePath(path, false, true, false);
}

代码示例来源:origin: webx/citrus

/**
 * 规格化绝对路径。
 * <p>
 * 该方法返回以“<code>/</code>”开始的绝对路径。转换规则如下:
 * </p>
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径和强制指定<code>removeTrailingSlash==true</code>)。</li>
 * <li>对于绝对路径,如果".."上朔的路径超过了根目录,则看作非法路径,抛出异常。</li>
 * </ol>
 *
 * @param path                要规格化的路径
 * @param removeTrailingSlash 是否强制移除末尾的<code>"/"</code>
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizeAbsolutePath(String path, boolean removeTrailingSlash) throws IllegalPathException {
  return normalizePath(path, true, false, removeTrailingSlash);
}

代码示例来源:origin: webx/citrus

/**
 * 规格化相对路径。
 * <p>
 * 该方法返回不以“<code>/</code>”开始的相对路径。转换规则如下:
 * </p>
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>空相对路径返回""。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径和强制指定<code>removeTrailingSlash==true</code>)。</li>
 * </ol>
 *
 * @param path                要规格化的路径
 * @param removeTrailingSlash 是否强制移除末尾的<code>"/"</code>
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizeRelativePath(String path, boolean removeTrailingSlash) throws IllegalPathException {
  return normalizePath(path, false, true, removeTrailingSlash);
}

代码示例来源:origin: webx/citrus

/**
 * 规格化绝对路径。
 * <p>
 * 该方法返回以“<code>/</code>”开始的绝对路径。转换规则如下:
 * </p>
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径)。</li>
 * <li>对于绝对路径,如果".."上朔的路径超过了根目录,则看作非法路径,抛出异常。</li>
 * </ol>
 *
 * @param path 要规格化的路径
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizeAbsolutePath(String path) throws IllegalPathException {
  return normalizePath(path, true, false, false);
}

代码示例来源:origin: webx/citrus

/**
 * 规格化相对路径。
 * <p>
 * 该方法返回不以“<code>/</code>”开始的相对路径。转换规则如下:
 * </p>
 * <ol>
 * <li>路径为空,则返回<code>""</code>。</li>
 * <li>将所有backslash("\\")转化成slash("/")。</li>
 * <li>去除重复的"/"或"\\"。</li>
 * <li>去除".",如果发现"..",则向上朔一级目录。</li>
 * <li>空相对路径返回""。</li>
 * <li>保留路径末尾的"/"(如果有的话,除了空路径)。</li>
 * </ol>
 *
 * @param path 要规格化的路径
 * @return 规格化后的路径
 * @throws IllegalPathException 如果路径非法
 */
public static String normalizeRelativePath(String path) throws IllegalPathException {
  return normalizePath(path, false, true, false);
}

代码示例来源:origin: webx/citrus

/** 取得匹配的路径。 */
public File getPath(ResourceMatchResult context) {
  String realPath = context.substitute(path);
  if (basedir != null) {
    realPath = new File(basedir, realPath).getAbsolutePath();
  }
  return new File(normalizePath(realPath));
}

代码示例来源:origin: webx/citrus

/** 取得匹配的路径。 */
public File getPath(ResourceMatchResult context) {
  String realPath = context.substitute(path);
  if (basedir != null) {
    realPath = new File(basedir, realPath).getAbsolutePath();
  }
  return new File(normalizePath(realPath));
}

代码示例来源:origin: webx/citrus

public SearchPath(String path, boolean relative) {
  this.path = assertNotNull(trimToNull(normalizePath(path)), "path");
  this.relative = relative;
}

代码示例来源:origin: webx/citrus

public SearchPath(String path, boolean relative) {
  this.path = assertNotNull(trimToNull(normalizePath(path)), "path");
  this.relative = relative;
}

代码示例来源:origin: webx/citrus

/** 初始化loader,并设定loader所在的<code>ResourceLoadingService</code>的实例。 */
public void init(ResourceLoadingService resourceLoadingService) {
  // 设置basedir:
  // 1. 如果没有指定basedir,则将当前配置文件所在目录看做basedir
  // 2. 如果指定了相对路径的basedir,则相对于当前配置文件所在目录
  // 3. 如果指定了绝对路径的basedir,则以此作为basedir
  // 最后,规格化basedir。
  if (basedir == null) {
    basedir = configFileBasedir;
  } else {
    if (configFileBasedir != null) {
      basedir = getSystemDependentAbsolutePathBasedOn(configFileBasedir, basedir);
    }
  }
  basedir = trimToNull(normalizePath(basedir));
  // 如果未指定path,则加入默认的path:/
  if (isEmptyArray(paths)) {
    paths = new SearchPath[] { new SearchPath("/", true) };
  }
  // 设置relative path的basedir
  for (SearchPath searchPath : paths) {
    searchPath.init(basedir);
  }
}

相关文章