2009-07-15 23 views
2

私はWindowsアプリケーションをOSXに移植しており、ユーザーの家庭、文書、音楽ディレクトリを取得する必要があります。 WindowsではSHGetFolderPath WinAPI呼び出しを使用して実行されます。OSXのSHGetFolderPathに相当するものは何ですか?

  1. 私はOSXでどうすればできますか?Objective Cに頼らないでください。
  2. Objective Cを使わないとできない場合、どうすればいいですか?

答えて

2

NSSearchPathForDirectoriesInDomainsまたはFSFindFolderを呼び出します。

+0

NSMusicDirectoryは最終的に10.6に登場しました。 –

3

あなたは(Cからのシェルまたはgetenvから例えば、「echo $HOME」)環境変数HOMEを見て、ユーザー自身のホームディレクトリを取得することができます。他のユーザのホームディレクトリについては、​​またはgetpwuid(詳細はマンページを参照)を使用してホームディレクトリを取得できます。他のディレクトリについては、Carbon API FSFindFolderを試すことができます。

3

私はあなたが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パスを出力します。ここでは、検索することができ、他のディレクトリの参照です:

NSSearchPathDirectory

関連する問題