How to change dir to $HOME?
Archives Forums/MacOS X Discussion/How to change dir to $HOME?
| ||
I would like to be able to put the preferences file for my game in ~/Library/Preferences. Can anyone think of a good way to do this? Remember it has to work whether the app is stored, whether that is in /Applicaltions/ or ~/Desktop/ or something! It would be nice if there was a command such as ChangeToHomeDir() or GetHomeDir()... For now though, I would be happy with any solution, even if it meant interacting with C code (there isn't even any easy way to do it in C either is there AFAIK?) |
| ||
You can use the "getenv_" function to get an environment variable, for example, the $HOME env variable:Home$ = getenv_("HOME") |
| ||
Hi, getenv_("HOME") will probably work from within the IDE but probably not from a standalone app. Try this. It ain't pretty, but should work: Const kUserDomain=-32763 Const kVolumeRootFolderType=Asc("r") Shl 24 | Asc("o") Shl 16 | Asc( "o") Shl 8 | Asc("t") Extern Function FSFindFolder( vRefNum,folderType,createFolder,foundRef:Byte Ptr ) Function FSRefMakePath( ref:Byte Ptr,path:Byte Ptr,maxPathsize ) End Extern Function HomeDir$() Local buf:Byte[1024],ref:Byte[80] If FSFindFolder( kUserDomain,kVolumeRootFolderType,False,ref ) Return If FSRefMakePath( ref,buf,1024 ) Return Return String.FromCString( buf ) End Function Print HomeDir() ChangeDir HomeDir() I agree that this should be 'builtin'. |
| ||
Blimey. Don't have a clue how that code works. But thank you! :-) |
| ||
Blimey. Don't have a clue how that code works. Either do I really! It was the result of an intense google session, and it's the only variation I found that worked on both 10.2 and 10.3 |