
Hal Daume wrote:
Would there be any way to get some of these differences into the System.Directory structure? At least the following would be nice:
pathSeparator :: Char '\\' on Windows, '/' on unices, ':' (I believe) on macs, etc...
Either '\\' or '/' on Windows. The former is preferred, but the latter also works in most contexts. For Windows, there's also the issue of drive letters and network (UNC) paths.
isCaseSensitive :: Bool False on Windows, True on (all?) unices, i have no idea on macs
It's more accurate to say that most "native" Unix filesystems are
case-sensitive. However, many Unix systems can mount "foreign"
filesystems (FAT, SMB) which aren't case-sensitive.
Another significant distinction is in the handling of non-ASCII
characters. Windows treats filenames as lists of characters; VFAT and
NTFS use Unicode, while FAT filesystems may have an associated
codepage. OTOH, Unix treats filenames as lists of bytes; while
applications may impose an (arbitrary) encoding on filenames, the OS
doesn't.
--
Glynn Clements