我已解压缩文件并发送到我的文档目录:
[SSZipArchive unzipFileAtPath:path toDestination:destinationPath];
在解压缩文件中,将有5种不同类型的文件。我只想知道文件的路径和文件名,扩展名类型为' .shp'。
我尝试过以下方法:
NSString *filePath = [[NSBundle mainBundle] pathForResource:destinationPath ofType:@"shp"];
之后,我想删除该文件夹中文件的所有内容。
有什么想法吗?提前谢谢。
答案 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];
}
}
如果能解决问题,请告诉我。