【问题标题】:NSFileManager, file extensionNSFileManager,文件扩展名
【发布时间】:2011-05-07 02:12:29
【问题描述】:

我正在创建一个 iPhone 应用程序,它使 iphone 充当笔式驱动器,以便于文件共享。

在第一阶段,我在一个目录中有一些文件(png、pdf、jpg、zip),我让它们以可变数组的形式显示在 tableview 中。在tableView中显示如下,

.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 

【问题讨论】:

    标签: iphone uitableview nsfilemanager


    【解决方案1】:

    查看 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);
    

    【讨论】:

    • 如何将 stringByDeletingPathExtension 用于可变数组?有什么想法吗?
    • 你应该考虑花一些时间来学习编程的基础知识,然后才能到 stackoverflow - 程序员网站。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多