path library Null safety
A comprehensive, cross-platform path manipulation library.
The path library was designed to be imported with a prefix, though you don't have to if you don't want to:
import 'package:path/path.dart' as p;
The most common way to use the library is through the top-level functions. These manipulate path strings based on your current working directory and the path style (POSIX, Windows, or URLs) of the host platform. For example:
p.join('directory', 'file.txt');
This calls the top-level join function to join "directory" and "file.txt" using the current platform's directory separator.
If you want to work with paths for a specific platform regardless of the underlying platform that the program is running on, you can create a Context and give it an explicit Style:
var context = p.Context(style: Style.windows);
context.join('directory', 'file.txt');
This will join "directory" and "file.txt" using the Windows path separator, even when the program is run on a POSIX machine.
Classes
- Context
- An instantiable class for manipulating paths. Unlike the top-level functions, this lets you explicitly select what platform the paths will use.
-
PathMap<
V> - A map whose keys are paths, compared using p.equals and p.hash.
- PathSet
- A set containing paths, compared using p.equals and p.hash.
- Style
- An enum type describing a "flavor" of path.
Properties
- context → Context
-
The system path context.
final
- current → String
-
Gets the path to the current working directory.
read-only
- posix → Context
-
A default context for manipulating POSIX paths.
final
- separator → String
-
Gets the path separator for the current platform. This is
\
on Windows and/
on other platforms (including the browser).read-only - style → Style
-
Returns the Style of the current context.
read-only
- url → Context
-
A default context for manipulating URLs.
final
- windows → Context
-
A default context for manipulating Windows paths.
final
Functions
-
absolute(
String part1, [String? part2, String? part3, String? part4, String? part5, String? part6, String? part7]) → String - Returns a new path with the given path parts appended to current.
-
basename(
String path) → String -
Gets the part of
path
after the last separator. -
basenameWithoutExtension(
String path) → String -
Gets the part of
path
after the last separator, and without any trailing file extension. -
canonicalize(
String path) → String -
Canonicalizes
path
. -
dirname(
String path) → String -
Gets the part of
path
before the last separator. -
equals(
String path1, String path2) → bool -
Returns
true
ifpath1
points to the same location aspath2
, andfalse
otherwise. -
extension(
String path, [int level = 1]) → String -
Gets the file extension of
path
: the portion of basename from the last.
to the end (including the.
itself). -
fromUri(
dynamic uri) → String -
Returns the path represented by
uri
, which may be a String or a Uri. -
hash(
String path) → int -
Returns a hash code for
path
such that, if equals returnstrue
for two paths, their hash codes are the same. -
isAbsolute(
String path) → bool -
Returns
true
ifpath
is an absolute path andfalse
if it is a relative path. -
isRelative(
String path) → bool -
Returns
true
ifpath
is a relative path andfalse
if it is absolute. On POSIX systems, absolute paths start with a/
(forward slash). On Windows, an absolute path starts with\\
, or a drive letter followed by:/
or:\
. -
isRootRelative(
String path) → bool -
Returns
true
ifpath
is a root-relative path andfalse
if it's not. -
isWithin(
String parent, String child) → bool -
Returns
true
ifchild
is a path beneathparent
, andfalse
otherwise. -
join(
String part1, [String? part2, String? part3, String? part4, String? part5, String? part6, String? part7, String? part8]) → String - Joins the given path parts into a single path using the current platform's separator. Example:
-
joinAll(
Iterable< String> parts) → String - Joins the given path parts into a single path using the current platform's separator. Example:
-
normalize(
String path) → String -
Normalizes
path
, simplifying it by handling..
, and.
, and removing redundant path separators whenever possible. -
prettyUri(
dynamic uri) → String -
Returns a terse, human-readable representation of
uri
. -
relative(
String path, {String? from}) → String -
Attempts to convert
path
to an equivalent relative path from the current directory. -
rootPrefix(
String path) → String -
Returns the root of
path
, if it's absolute, or the empty string if it's relative. -
setExtension(
String path, String extension) → String -
Returns
path
with the trailing extension set toextension
. -
split(
String path) → List< String> -
Splits
path
into its components using the current platform's separator. -
toUri(
String path) → Uri -
Returns the URI that represents
path
. -
withoutExtension(
String path) → String -
Removes a trailing extension from the last part of
path
.
Exceptions / Errors
- PathException
- An exception class that's thrown when a path operation is unable to be computed accurately.