如何使用NSFileManager删除目录及其内容

boo*_*hoo 34 iphone objective-c

Objective C的新手.我创建了一些包含iPhone应用程序pdf文件的目录.如何使用NSFileManager删除目录及其内容?

我是否需要首先循环并删除内容?任何代码示例都将非常感激.

提前致谢.

Ita*_*ber 48

首先,通过Apple的NSFileManageriPhone文档来看是明智的:NSFileManager类参考.二,看NSFileManager-removeItemAtPath:error:方法和它的文档.这就是你要找的东西.

  • 是的,它会,如果你对某些事情有任何疑问,只需设置一个小的测试程序,看它是否确实如此. (24认同)
  • @ItaiFerber尝试它很好,但是在网上发布一个可搜索的,众包的答案结果.所以:先询问有其优点. (10认同)
  • 如果我将目录传递给-removeItemAtPath:error:它还会删除内容吗?听起来像一个愚蠢的问题,但我发现的唯一其他例子首先删除了目录的内容. (3认同)
  • @GregMaletic我的意见旨在强化这样一种观点,即如果对Apple的文档或SO上的任何答案都有疑问,自我验证可以真正帮助澄清正在发生的事情.没有更多,没有更少.:) (3认同)

twe*_*ter 36

下面是我使用的一些代码,我已编辑以适应这个问题

- (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];
}
Run Code Online (Sandbox Code Playgroud)

  • 考虑stringByAppendingPathComponent而不是appendString! (2认同)