Environment variable for application storage under OSX ?

anonymous via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jul 17 06:27:08 PDT 2015


On Friday, 17 July 2015 at 07:54:43 UTC, FreeSlave wrote:
> On Friday, 17 July 2015 at 07:33:43 UTC, Anonymous wrote:
>> On Friday, 17 July 2015 at 07:14:24 UTC, FreeSlave wrote:
>>> On Thursday, 16 July 2015 at 21:12:05 UTC, 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)?
>>>
>>> Hello. You may take a look at this library 
>>> https://github.com/MyLittleRobo/standardpaths
>>> OSX version uses Carbon though. You may want to use Cocoa API 
>>> (which is newer), but it's Objective-C.
>>> Also you may consider standard path for data storage without 
>>> using any api or spec. It's usually $HOME/Library/Application 
>>> Support/ on OSX.
>>
>> So for a software named 'SuperDownloader2015'  it would be
>>
>> $HOME/Library/Application Support/SuperDownloader2015
>>
>> right ?
>>
>> so it's not user-specific and it's writable for the current 
>> user ?
>> sorry but it looks a bit strange, anyone can confirm ?
>
> It is user specific obviously since it's in user home.
> Can you elaborate on what do you want exactly?
> From Windows and Linux examples you provided I assumed you need 
> user-specific paths (APPDATA is defined per user on Windows). 
> System-wide application data path is different.

Ok so my sample can be rewritten

----
static this() {
      version(Win32) p = environment.get("APPDATA");
      version(linux) p = "/home/" ~ environment.get("USER");
      version(OSX) p = environment.get("HOME") ~ 
/Library/Application Support/;
}
---

I really wish it could be possible to buy and setup OSX on any 
hardware...I will never buy a mac just to test the portability of 
a couple of projects 1 hour per week...

Anyway thx all for your answers.


More information about the Digitalmars-d-learn mailing list