2010-07-20 5 views
1

Ma question est, quel répertoire NSFileManager commence, je suis vraiment confus parce que quand je cours le code pour me dire dans quel répertoire je suis, il sort juste/. Aussi je peux changer le répertoire en/private/var mais pas en/mobile et/mobile/applications où est l'application. Bellow est mon code.En objectif-c sur iPhone, j'essaie d'utiliser le NSFileManager. Je ne peux pas savoir quel répertoire il commence

NSString *currentpath;

filemgr = [NSFileManager defaultManager];currentpath = [filemgr currentDirectoryPath]; 

NSLog (@"Current directory is %@", currentpath); 

if ([filemgr changeCurrentDirectoryPath: @"/private/var/mobile"] == NO) 
    NSLog (@"Cannot change directory."); 

currentpath = [filemgr currentDirectoryPath]; 

NSLog (@"Current directory is %@", currentpath); 
label.text = currentpath; 

Merci à l'avance.

+0

Pourquoi voulez-vous un NSFileManager dans le répertoire de votre application? Si vous souhaitez charger quelque chose à partir de votre propre ensemble d'applications, consultez NSBundle. Vous ne pouvez pas le remplacer par/mobile car cela se situe en dehors du sandbox de votre application: vous n'êtes pas autorisé à lire ou à écrire à partir de cet emplacement. –

+0

Cette application ne doit pas être utilisée sur l'App Store. Je pensais que même si Apple n'autorise pas les applications sur l'App Store à fonctionner en dehors du bac à sable, si c'était pour un usage personnel, cela n'aurait pas d'importance. Aussi, la raison pour laquelle j'en ai besoin est de déplacer des images png vers différents endroits sur mon iPhone. –

+0

Ce n'est pas une limitation de stratégie d'App Store - c'est une limitation technique d'iOS. –

Répondre

1

Toutes les applications sur iOS sont en mode bac à sable. Cela signifie qu'ils ont leur propre petit bac à sable (chaque application a son propre dossier). Le "/" représente la racine du dossier Sandbox de l'application. En citant un peu Amorya, vous ne pouvez pas écrire dans/private/var parce que vous invalidez les exigences de l'application sandbox (vous ne pouvez pas y écrire ou lire).

Questions connexes