Domanda

Come vorrei prendere un file nella directory dell'applicazione (nella stessa cartella del .app è in), e ottenere il suo percorso assoluto. Dicono che il percorso relativo è "Data / file.txt," come userei Objective C per ottenere che come un percorso assoluto? Ho all'utente di inserire il nome della cartella di casa, se questo è di aiuto.

Si prega di aiuto,

HiGuy

È stato utile?

Soluzione

Trova la posizione della applicazione in esecuzione facendo:

NSString * applicationPath = [[NSBundle mainBundle] bundlePath];

che restituirà qualcosa come:

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

Quindi utilizzare - (NSString *)stringByDeletingLastPathComponent per recidere l'ultimo bit.

Altri suggerimenti

mi piacerebbe utilizzare i metodi NSURL che risolvono gli URL per me, in questo modo:

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

Il "../" è necessaria, perché altrimenti avrebbe cercato di individuare il file all'interno il tuo pacco app. Mettere il "../" anticipo dirà per guardare nella cartella che contiene il pacchetto, e non nel bundle stesso. Inoltre, -[NSBundle bundleURL] è un'API 10.6+, ma è banale per replicare la funzionalità utilizzando un metodo NSURL convenienza e -[NSBundle bundlePath].

Si dovrebbe solo essere in grado di concatenare la cartella principale dell'applicazione, con il percorso relativo. Si può arrivare alla cartella app casa con NSHomeDirectory (), in modo da ottenere il percorso assoluto che si può fare qualcosa di simile al seguente:

NSString *path = [NSHomeDirectory() stringByAppendingString: @"/Data/file.txt"];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top