如何检索特定文件扩展名的文件的文件路径?

时间:2017-02-13 05:54:04

标签: ios objective-c

我已解压缩文件并发送到我的文档目录:

[SSZipArchive unzipFileAtPath:path toDestination:destinationPath];

在解压缩文件中,将有5种不同类型的文件。我只想知道文件的路径和文件名,扩展名类型为' .shp'。

我尝试过以下方法:

NSString *filePath = [[NSBundle mainBundle] pathForResource:destinationPath ofType:@"shp"];

之后,我想删除该文件夹中文件的所有内容。

有什么想法吗?提前谢谢。

3 个答案:

答案 0 :(得分:1)

首先,获取所有目录文件。

NSString *bundle = [[NSBundle mainBundle] bundlePath];
NSFileManager * aMan = [NSFileManager defaultManager];
NSArray * allFiles = [aMan contentsOfDirectoryAtPath: bundle];

然后可以使用以下方法之一过滤所需的扩展名:

NSPredicate *filter = [NSPredicate predicateWithFormat:@"self ENDSWITH '.shp'"];
NSArray *filtered = [allFiles filteredArrayUsingPredicate:filter];

下一步 - 删除文件,循环过滤。但对我来说这看起来不太好 所以,我更喜欢这个:

NSError *error;
for (NSString * elem in allFiles) {
    if ([[elem pathExtension] isEqualToString:@"shp"])
        [aMan removeItemAtPath:[bundle stringByAppendingPathComponent:elem] error:&error];

希望,这有帮助

答案 1 :(得分:0)

您可以使用NSFileManager删除文件:

NSFileManager * fileManager = [[NSFileManager alloc]init];

[fileManager removeItemAtPath:@"your path" error:nil];

答案 2 :(得分:0)

您可以通过以下方式完成此操作:

NSURL *baseURL = [NSURL URLWithString:destinationPath];
NSDirectoryEnumerator* filesEnumerator = [[NSFileManager defaultManager] enumeratorAtURL:baseURL includingPropertiesForKeys:@[] options:0 errorHandler:nil];

NSURL* fileURL;
while (fileURL = [filesEnumerator nextObject]) {
    NSString* file = [fileURL lastPathComponent];
    BOOL match = [file containsString:@".shp"];
    if (match) {
       [[NSFileManager defaultManager] removeItemAtURL:fileURL error:nil];
    }
}

如果能解决问题,请告诉我。