質問

どのように私は(同じフォルダに.appがである)、アプリケーションのディレクトリ内のファイルを取り、それは絶対パスですになるだろう。どのように私は絶対パスでそれを得るためのObjective Cを使用する「データ/ file.txtは」相対パスがあると言いますか?それは任意のヘルプである場合、私は、ユーザーが自分のホームフォルダ名を入力しています。

助けてください、

HiGuy

役に立ちましたか?

解決

行って、実行中のアプリの場所を検索

NSString * applicationPath = [[NSBundle mainBundle] bundlePath];
以下のようなものを返します。

/Users/myUser/Library/Application Support/iPhone Simulator/User/Applications/317CF5C7-57B3-42CE-8DF4-4DD10B070D95/Assignment1a.app

次に、最後のビットを切り落とすために- (NSString *)stringByDeletingLastPathComponentを使用します。

他のヒント

私はそうのようなNSURL方法私のために解決のURLことを、使用したいです

NSURL * bundle = [[NSBundle mainBundle] bundleURL];
NSURL * file = [NSURL URLWithString:@"../Data/file.txt" relativeToURL:bundle];
NSURL * absoluteFile = [file absoluteURL];

それ以外の場合は、ファイルの内部にのアプリのバンドルを見つけるために試してみたので、「../」、必要です。 「../」を置くことは、あらかじめバンドルの入っているフォルダではなく、バンドル自体に見て、それを教えてくれます。また、-[NSBundle bundleURL]は、10.6以降のAPIであるが、それはNSURLの便利なメソッドと-[NSBundle bundlePath]を使用して機能を複製するように些細なのです。

あなただけの相対パスで、アプリのルートフォルダを連結することができるはずです。あなたは、あなたが以下のような何かを行うことができ、絶対パスを取得するには、NSHomeDirectory()でアプリのホームディレクトリで取得することができます:

NSString *path = [NSHomeDirectory() stringByAppendingString: @"/Data/file.txt"];
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top