Vincent Snijders wrote 21 lines
Felipe Monteiro de Carvalho schreef:
> Hello,
>
> GetAppConfigFile in win32 uses CSIDL_LOCAL_APPDATA to be implemented.
>
> I did some research, and I think that CSIDL_APPDATA is a better choice:
>
>
http://blogs.msdn.com/oldnewthing/archive/2005/07/01/434647.aspx
>
> They are very similar, but the LOCAL version is a bit more specifc,
> and the non-LOCAL has the advantage of a lower requirement. It
> requires shell 4.0 while the other requires shell 5.0
>
> Careful that both are for local settings, the name just isn't very
> intuitive.
I thought that local version is not stored on the network and is not available
in the roaming profile. Putting a 100 MB Lazarus exe in the CSIDL_APPDATA is
not a good thing, it ruins startup time (and shutdown time to copy the 100 MB
to the network). So, if this change is made, I will probably put windows
specific code in Lazarus to prevent that.
I specially chose local because I don't want it to be roaming data. I don't intend to change the implementation, if only for backward compatibility: suddenly all config files would no longer be found.
And frankly, with each new version of Windows, there are new folders and rules, so we can keep playing catch-up.
That aside, I think we should maybe create a unit 'osfolders' or so which creates a cross-platform interface to retrieve 'special' folders in a cross-platform way, using some enumerated type. I have made this once for Delphi, to hide the ugly windows API in something more Pascal-ish. Extending it to work on Unices as well should not be too hard.
I'll put it on my todo list.
Michael.