2015-04-23 2 views
0

Если я включаю папку в свой пакет (настоящая папка, синие, а не желтые группы), как я могу получить путь для этой папки из моего пакета? Метод, который я обычно использовал, - это ...метод pathForDirectory для NSBundle?

[[NSBundle mainBundle] pathForResource:fileName ofType:______]; 

... но что такое «тип» - это каталог? Существует ли «тип», или есть другой способ доступа к путям каталогов внутри пакета?

Или я все об этом не так, и есть какой-то другой способ включить папки доступных документов в комплекте?

+1

Каталоги также могут иметь расширения. Если у вас их нет, пропустите @ "" для параметра 'type'. – Cristik

+0

@Cristik Huh. Ну что, знаешь. Благодаря! – Nerrolken

ответ

1

В каталогах также могут быть расширения. Если у вас их нет, просто передайте @ "" для параметра type, -[NSBundle pathForResource:ofType:] также работает и для каталогов, а не только для файлов. В конце, каталог также является ресурсом :)

0

Согласно предложению в комментариях, вы можете использовать пустую строку для ссылки на папки. Так папка под названием «MyFolder» будет доступна с помощью ...

[[NSBundle mainBundle] pathForResource:@"myFolder" ofType:@""]; 

Надеется, что это поможет кому-то, кто не ожидал, что это будет так легко ...

0

Как вы добавляете папку по своему усмотрению, вы знаете имя папки, так что вы можете получить этот путь:

NSString *myDirectoryName = @"myDirectory"; 
NSString *absolutePathToMyDirectory = [[NSBundle mainBundle].resourcePath stringByAppendingPathComponent:myDirectoryName]; 

вы должны проверить, если этот путь существует с NSFileManager.

В противном случае вы можете использовать метод, который вы используете, тип может быть nil, так что вы можете назвать это как этот

NSString *absolutePathToMyDirectory = [[NSBundle mainBundle] pathForResource:myDirectoryName ofType:nil]; 

, а затем проверить, если результат nil или нет.

if(absolutePathToMyDirectory) { 
    // do stuff related to this path 
} 
Смежные вопросы