2013-01-17 17 views
5

Ho un'app mac sanbox con l'autorizzazione com.apple.security.assets.pictures.read-write impostata su SÌ. Quindi, posso accedere agli utenti effettivi/utenti/nome utente/cartella immagini.Come ottenere la directory Pictures dell'utente nell'applicazione mac sandboxed?

Mi piacerebbe ottenere il percorso di questa directory a livello di codice, come posso farlo?

Attualmente eseguo la procedura seguente ma risulta nel contenitore sandbox. Posizione immagini.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSPicturesDirectory, NSUserDomainMask, YES); 

//this gets the pictures directory in sandbox container not the actual user Pictures directory 
NSString *userPicturesPath = [paths objectAtIndex:0]; 
+1

L'ho riprodotto in un progetto di esempio, e non sono riuscito a capire in alcun modo, utilizzando le funzioni di Foundation (come hai citato nel tuo domanda) o le sostituzioni 'NSFileManager' per loro. Sembra un'enorme supervisione. Ho esaminato documenti, intestazioni e progetti GitHub e non sono riuscito a trovare un esempio di ciò correttamente. Ho anche pensato che forse la sottodirectory del contenitore ti avrebbe dato accesso agli stessi file e cartelle, ma non è così. – Dov

risposta

2

Mi sembra che la directory Pictures contenitore di sandbox è solo un link simbolico a ~/Pictures. Quindi credo che questo sia esattamente quello che vuoi. Puoi vedere questo chiamando stringByResolvingSymlinksInPath nel userPicturesPath nel tuo esempio. Puoi vedere che questi file sono in realtà solo collegamenti simbolici ai file corrispondenti nel tuo $HOMEScreenshot

Problemi correlati