In Haskell, is there a portable way to check of a FilePath
if it’s a root directory, e.g. /
or //
on Unix/POSIX/Linux, and C:\
or \\?\UNC\Foobar
on Windows/NT/DOS? I’ve checked through the directory
and filepath
packages but I can’t find a function for this.
CodePudding user response:
I don't see anything in base
, but there appears to be a filepath
library that claims to be shipped with GHC (and indeed I find it available even in a project with no dependencies). It contains functions such as isDrive :: FilePath -> Bool
. It notes that on POSIX, /
is considered the only "drive". This function appears to behave the way you hope (scroll up to the docs for splitDrive
for examples involving UNC).