私はWindowsアプリケーションをOSXに移植しており、ユーザーの家庭、文書、音楽ディレクトリを取得する必要があります。 WindowsではSHGetFolderPath
WinAPI呼び出しを使用して実行されます。OSXのSHGetFolderPathに相当するものは何ですか?
- 私はOSXでどうすればできますか?Objective Cに頼らないでください。
- Objective Cを使わないとできない場合、どうすればいいですか?
私はWindowsアプリケーションをOSXに移植しており、ユーザーの家庭、文書、音楽ディレクトリを取得する必要があります。 WindowsではSHGetFolderPath
WinAPI呼び出しを使用して実行されます。OSXのSHGetFolderPathに相当するものは何ですか?
NSSearchPathForDirectoriesInDomains
またはFSFindFolder
を呼び出します。
あなたは(Cからのシェルまたはgetenv
から例えば、「echo $HOME
」)環境変数HOME
を見て、ユーザー自身のホームディレクトリを取得することができます。他のユーザのホームディレクトリについては、またはgetpwuid
(詳細はマンページを参照)を使用してホームディレクトリを取得できます。他のディレクトリについては、Carbon API FSFindFolderを試すことができます。
私はあなたがObjective-Cのを使用しないことを好むが、ここでのObjective-Cでそれを行う方法の一例であると思います知っている:
NSLog(@"Library folder: %@", PathForUserDirectory(NSLibraryDirectory));
:
static NSString *PathForUserDirectory(NSSearchPathDirectory directory) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(directory, NSUserDomainMask, YES);
if ([paths count] > 0) {
return [paths objectAtIndex:0];
}
return nil;
}
はこのようにそれを使用します
現在のユーザーのライブラリディレクトリの完全なPOSIXパスを出力します。ここでは、検索することができ、他のディレクトリの参照です:
NSMusicDirectoryは最終的に10.6に登場しました。 –