我创建了一些目录,其中包含 iOS 应用程序的 PDF 文件。如何使用
NSFileManager
删除目录及其内容?
我需要先循环并删除内容吗?任何代码示例将不胜感激。
首先,明智的做法是查看 Apple 的 iPhone
NSFileManager
文档:NSFileManager 类参考。其次,查看 NSFileManager
的 -removeItemAtPath:error:
方法及其文档。这就是您要找的。
这是我编辑过的一些代码来适应这个问题
- (NSMutableString*)getUserDocumentDir {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSMutableString *path = [NSMutableString stringWithString:[paths objectAtIndex:0]];
return path;
}
- (BOOL) createMyDocsDirectory
{
NSMutableString *path = [self getUserDocumentDir];
[path appendString:@"/MyDocs"];
NSLog(@"createpath:%@",path);
return [[NSFileManager defaultManager] createDirectoryAtPath:path
withIntermediateDirectories:NO
attributes:nil
error:NULL];
}
- (BOOL) deleteMyDocsDirectory
{
NSMutableString *path = [self getUserDocumentDir];
[path appendString:@"/MyDocs"];
return [[NSFileManager defaultManager] removeItemAtPath:path error:nil];
}
您可以使用以下方法获取文档目录:
NSString *directoryPath = [NSHomeDirectory() stringByAppendingString:@"/Documents/"];
** 使用以下命令删除完整目录路径:
BOOL success = [fileManager removeItemAtPath:directoryPath error:nil];
if (!success) {
NSLog(@"Directory delete failed");
}
** 使用以下命令删除该目录的内容:
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:directoryPath]) {
NSDirectoryEnumerator *dirEnum = [fileManager enumeratorAtPath:directoryPath];
NSString *documentsName;
while (documentsName = [dirEnum nextObject]) {
NSString *filePath = [directoryPath stringByAppendingString:documentsName];
BOOL isFileDeleted = [fileManager removeItemAtPath:filePath error:nil];
if(isFileDeleted == NO) {
NSLog(@"All Contents not removed");
break;
}
}
NSLog(@"All Contents Removed");
}
** 您可以根据您的要求编辑
directoryPath
。