Environment variable for application storage under OSX ?

Jacob Carlborg via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jul 17 05:56:30 PDT 2015


On 2015-07-16 23:12, anonymous wrote:
> I have the following code, working under Win and Linux:
>
> ---
> import std.process: environment;
>
> immutable string p;
>
> static this() {
>      version(Win32) p = environment.get("APPDATA");
>      version(linux) p = "/home/" ~ environment.get("USER");
>      version(OSX) p = "?";
> }
> ---
>
> what would be the OSX equivalent (to get the path where the applications
> data are commonmly stored)?

They are usually defined as constants in Objective-C. You can read more 
about it here [1][2][3].

You can also use the CoreServices framework which has a C API [4]. But I 
think it's deprecated and the preferred way is to use the Objective-C API's.

[1] 
https://developer.apple.com/library/mac/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/AccessingFilesandDirectories/AccessingFilesandDirectories.html#//apple_ref/doc/uid/TP40010672-CH3-SW3

[2] 
https://developer.apple.com/library/mac/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/AccessingFilesandDirectories/AccessingFilesandDirectories.html#//apple_ref/doc/uid/TP40010672-CH3-SW11

[3] 
https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Constants/index.html#//apple_ref/c/econst/NSApplicationSupportDirectory

[4] 
http://stackoverflow.com/questions/5123361/finding-library-application-support-from-c

-- 
/Jacob Carlborg


More information about the Digitalmars-d-learn mailing list