Package org.apache.maven.shared.utils
Class PathTool
- java.lang.Object
-
- org.apache.maven.shared.utils.PathTool
-
public class PathTool extends java.lang.Object
Path tool contains static methods to assist in determining path-related information such as relative paths. This class originally got developed at Apache Anakia and later maintained in maven-utils of Apache Maven-1. Some external fixes by Apache Committers have been applied later.
-
-
Constructor Summary
Constructors Constructor Description PathTool()
Deprecated.This is a utility class with only static methods.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description 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.
-
-
-
Method Detail
-
getRelativePath
public static java.lang.String getRelativePath(@Nullable java.lang.String basedir, @Nullable java.lang.String filename)
Determines the relative path of a filename from a base directory. This method is useful in building relative links within pages of a web site. It provides similar functionality to Anakia's$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/" ) = ""
- Parameters:
basedir
- The base directory.filename
- The filename that is relative to the base directory.- Returns:
- The relative path of the filename from the base
directory. This value is not terminated with a forward slash.
A zero-length string is returned if: the filename is not relative to
the base directory,
basedir
is null or zero-length, orfilename
is null or zero-length.
-
getRelativeFilePath
public 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.
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.- Parameters:
oldPath
- old pathnewPath
- new path- Returns:
- a relative file path from
oldPath
.
-
-