NSFileManager, расширение файла - PullRequest
       11

NSFileManager, расширение файла

0 голосов
/ 09 ноября 2010

Я создаю приложение для iPhone, которое заставляет iphone выступать в роли привода для простого обмена файлами.

На первом этапе у меня есть несколько файлов (png, pdf, jpg, zip) в каталоге, и я заставил их отобразиться в виде таблицы в виде изменяемого массива. Отображается в табличном представлении, как показано ниже,

.DS_Store
.localized
gazelle.pdf
Hamburger_sandwich.jpg
IITD TAJ Picture 028_jpg.jpg
iya_logo_final_b&w.jpg
manifesto09-eng.pdf
RSSReader.sql
SimpleURLConnections.zip
SQLTutorial 

Я просто хочу отобразить имя файла и не хочу отображать расширения. Я знаю, что можно извлечь расширения файла в NSFileManager. Но я не знаю как. Пожалуйста, помогите мне сделать мой вид таблицы следующим образом

.DS_Store
.localized
gazelle
Hamburger_sandwich
IITD TAJ Picture 028_jpg
iya_logo_final_b&w
manifesto09-eng
RSSReader
SimpleURLConnections
SQLTutorial 

1 Ответ

0 голосов
/ 09 ноября 2010

Просмотрите документацию NSString, там вы найдете stringByDeletingPathExtension.

Основная идея заключается в том, что вы не хотите обновлять объекты в существующем массиве, но создаете новый массив с именами файлов без расширения и выбрасываете исходный массив.

Вот как это можно сделать:

NSArray *stuff = [NSArray arrayWithObjects:@"image1.jpg", @"image2.png", @"image3.tiff", nil];
NSLog(@"input %@", stuff);

stuff = [stuff valueForKey:@"stringByDeletingPathExtension"];
NSLog(@"output %@", stuff);

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

NSArray *stuff = [NSArray arrayWithObjects:@"image1.jpg", @"image2.png", @"image3.tiff", nil];
NSLog(@"input %@", stuff);

NSMutableArray *output = [NSMutableArray array];
for (NSString *filename in stuff) {
    NSString *filenameWithoutExtension = [filename stringByDeletingPathExtension];
    [output addObject:filenameWithoutExtension];
}
NSLog(@"output %@", output);
...