path library

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.
no setter
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).
no setter
style Style
Returns the Style of the current context.
no setter
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? part8, String? part9, String? part10, String? part11, String? part12, String? part13, String? part14, String? part15]) 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 if path1 points to the same location as path2, and false 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(Object? 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 returns true for two paths, their hash codes are the same.
isAbsolute(String path) bool
Returns true if path is an absolute path and false if it is a relative path.
isRelative(String path) bool
Returns true if path is a relative path and false 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 if path is a root-relative path and false if it's not.
isWithin(String parent, String child) bool
Returns true if child is a path beneath parent, and false otherwise.
join(String part1, [String? part2, String? part3, String? part4, String? part5, String? part6, String? part7, String? part8, String? part9, String? part10, String? part11, String? part12, String? part13, String? part14, String? part15, String? part16]) 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(Object? 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 to extension.
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.