This package provides functionality for manipulating FilePath values, and is shipped with GHC. It provides two variants for filepaths:
- legacy filepaths:
type FilePath = String
- operating system abstracted filepaths (
OsPath): internally unpinnedShortByteString(platform-dependent encoding)
It is recommended to use OsPath when possible, because it is more correct.
For each variant there are three main modules:
System.FilePath.Posix/System.OsPath.Posixmanipulates POSIX/Linux styleFilePathvalues (with/as the path separator).
System.FilePath.Windows/System.OsPath.Windowsmanipulates Windows styleFilePathvalues (with either\or/as the path separator, and deals with drives).
System.FilePath/System.OsPathfor dealing with current platform-specific filepaths
For more powerful string manipulation of OsPath, you can use the os-string package (OsPath is a type synonym for OsString).
An introduction into the new API can be found in this blog post. Code examples for the new API can be found here.