我已经解压缩了一个文件并发送到我的文档目录:
[SSZipArchive unzipFileAtPath:path toDestination:destinationPath];
在解压缩的文件中将有5种不同类型的文件。我只想知道扩展名类型为".shp"的文件的路径和文件名。
我试过以下几种:
NSString *filePath = [[NSBundle mainBundle] pathForResource:destinationPath ofType:@"shp"];
之后,我想删除该文件夹中文件的所有内容。
有什么想法吗?提前谢谢。
首先,获取所有目录文件。
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];
希望它能帮助
您可以使用NSFileManager删除文件:
NSFileManager * fileManager = [[NSFileManager alloc]init];
[fileManager removeItemAtPath:@"your path" error:nil];
您可以通过以下方式完成:
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];
}
}
如果它能解决问题,请告诉我。。