implementation of file-related modules

Wolfgang Thaller wolfgang.thaller at gmx.net
Mon Oct 20 13:07:41 EDT 2003


Keith Wansbrough wrote:

>>> Platform.{Debian,FreeBSD,MacOSX,Windows98,Windows2000}.
>>>    {configDirectory,fileSeparator,etc}
>>
>> I find it harder to think why I would want to know where Windows 
>> machines
>> store their configuration files.
>
> Furthermore, the location isn't fixed on Windows: it might be
> C:\WINDOWS\System (the most usual), or D:\WINDOWS\System (also
> possible), or <arbitrary-windows-path>\System (because the user can
> specify anything they like at install time).
>
> So config-file location has to be per machine, not per OS.
>
> Which suggests not putting it in the module
> heirarchy... Platform.UK.AC.CAM.CL.GLIA-NT.configDirectory, anyone? :)

I think it is a platform-dependent IO action:
getConfigDirectory :: IO String

This might simply be
getConfigDirectory = return "/etc/"

... but on Windows, where the directories aren't fixed, and on Mac OS, 
where the directories are fixed but developers are told not to rely on 
that fact, we can use OS-specific functions for finding the correct 
location.

(Bit is \Windows\System really for config files? I thought DLLs and 
drivers go there... but then I don't use Windows much.)

Cheers,

Wolfgang



More information about the Libraries mailing list