public class PathTool
extends java.lang.Object
| Constructor and Description |
|---|
PathTool() |
| Modifier and Type | Method and Description |
|---|---|
private static java.lang.String |
buildRelativePath(java.lang.String toPath,
java.lang.String fromPath,
char separatorChar) |
private static java.lang.String |
determineRelativePath(java.lang.String filename,
java.lang.String separator)
Determines the relative path of a filename.
|
private static java.lang.String |
determineSeparator(java.lang.String filename)
Helper method to determine the file separator (forward or
backward slash) used in a filename.
|
static java.lang.String |
getRelativeFilePath(java.lang.String oldPath,
java.lang.String newPath)
This method can calculate the relative path between two pathes on a file system.
|
static java.lang.String |
getRelativePath(java.lang.String basedir,
java.lang.String filename)
Determines the relative path of a filename from a base directory.
|
(package private) static java.lang.String |
uppercaseDrive(java.lang.String path)
Cygwin prefers lowercase drive letters, but other parts of maven use uppercase
|
public static java.lang.String getRelativePath(@Nullable
java.lang.String basedir,
@Nullable
java.lang.String filename)
$relativePath context variable. The arguments to
this method may contain either forward or backward slashes as
file separators. The relative path returned is formed using
forward slashes as it is expected this path is to be used as a
link in a web page (again mimicking Anakia's behavior).
This method is thread-safe.
PathTool.getRelativePath( null, null ) = "" PathTool.getRelativePath( null, "/usr/local/java/bin" ) = "" PathTool.getRelativePath( "/usr/local/", null ) = "" PathTool.getRelativePath( "/usr/local/", "/usr/local/java/bin" ) = ".." PathTool.getRelativePath( "/usr/local/", "/usr/local/java/bin/java.sh" ) = "../.." PathTool.getRelativePath( "/usr/local/java/bin/java.sh", "/usr/local/" ) = ""
basedir - The base directory.filename - The filename that is relative to the base
directory.basedir is null or zero-length,
or filename is null or zero-length.public static java.lang.String getRelativeFilePath(java.lang.String oldPath,
java.lang.String newPath)
PathTool.getRelativeFilePath( null, null ) = "" PathTool.getRelativeFilePath( null, "/usr/local/java/bin" ) = "" PathTool.getRelativeFilePath( "/usr/local", null ) = "" PathTool.getRelativeFilePath( "/usr/local", "/usr/local/java/bin" ) = "java/bin" PathTool.getRelativeFilePath( "/usr/local", "/usr/local/java/bin/" ) = "java/bin" PathTool.getRelativeFilePath( "/usr/local/java/bin", "/usr/local/" ) = "../.." PathTool.getRelativeFilePath( "/usr/local/", "/usr/local/java/bin/java.sh" ) = "java/bin/java.sh" PathTool.getRelativeFilePath( "/usr/local/java/bin/java.sh", "/usr/local/" ) = "../../.." PathTool.getRelativeFilePath( "/usr/local/", "/bin" ) = "../../bin" PathTool.getRelativeFilePath( "/bin", "/usr/local/" ) = "../usr/local"Note: On Windows based system, the
/ character should be replaced by \ character.oldPath - old pathnewPath - new patholdPath.@Nonnull
private static java.lang.String determineRelativePath(@Nonnull
java.lang.String filename,
@Nonnull
java.lang.String separator)
filename - The filename to parse.separator - The separator used within the filename.private static java.lang.String determineSeparator(java.lang.String filename)
filename - The filename parsed to determine the file
separator.filename.
This value is either a forward or backward slash.static java.lang.String uppercaseDrive(@Nullable
java.lang.String path)
path - old path@Nonnull
private static java.lang.String buildRelativePath(@Nonnull
java.lang.String toPath,
@Nonnull
java.lang.String fromPath,
char separatorChar)