Pergunta

Como eu pegaria um arquivo no diretório do aplicativo (a mesma pasta em que está .App está dentro) e obtém seu caminho absoluto. Digamos que o caminho relativo seja "dados/file.txt", como eu usaria o objetivo C para conseguir isso como um caminho absoluto? Eu tenho o usuário inserir o nome da pasta doméstico, se isso for alguma ajuda.

Por favor ajude,

Oi Cara

Foi útil?

Solução

Encontre a localização do aplicativo em execução fazendo:

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

Que retornará algo como:

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

Em seguida, use - (NSString *)stringByDeletingLastPathComponent Para cortar o último bit.

Outras dicas

Eu usaria o NSURL Métodos que resolvem URLs para mim, assim:

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

O ".. ../" é necessário, porque, caso contrário, tentaria localizar o arquivo lado de dentro seu pacote de aplicativos. Colocar o "../" de antemão dirá para olhar na pasta contendo do pacote, e não no próprio pacote. Também, -[NSBundle bundleURL] é uma API de 10,6+, mas é trivial replicar a funcionalidade usando um NSURL método de conveniência e -[NSBundle bundlePath].

Você deve ser capaz de concatenar a pasta raiz do aplicativo, com o caminho relativo. Você pode chegar ao diretório inicial do aplicativo com o NSHOMEDIRECTORY (), para obter o caminho absoluto, você pode fazer algo como o seguinte:

NSString *path = [NSHomeDirectory() stringByAppendingString: @"/Data/file.txt"];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top