我确信有更好的方法可以做到这一点。我有一大堆代码用于消灭iPhone或模拟器上的DocumentsDirectory。有时我只想要一个干净的平板,有时我会对数据库进行更改,我需要重建它。
因此,在我打开应用程序时调用的一个函数中,我将此代码注释掉,并在我想要重置时删除注释块。你是做什么?
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSArray *dirContents = [fileManager directoryContentsAtPath:[paths objectAtIndex:0]];
for (int i=0; i<[dirContents count]; ++i) {
NSString* theDir = [[paths objectAtIndex:0] stringByAppendingString:[@"/" stringByAppendingString:[dirContents objectAtIndex:i]]];
NSLog(theDir);
if ([fileManager removeItemAtPath: theDir error:NULL]) {
NSLog(@"removed dir");
}
}
我是新手iPhone开发者。如果这就像Python服务器,我只会运行一个脚本,但我不确定XCode / iPhone的惯例是什么。
答案 0 :(得分:5)
每次我需要清除此目录时,我通常只是从模拟器中删除应用程序。
答案 1 :(得分:2)
你的方法看起来就像我做的那样。但是,你可以改变这个:
[... stringByAppendingString:[@"/" stringByAppendingString:[dirContents objectAtIndex:i]]];
到此:
[... stringByAppendingPathComponent:[dirContents objectAtIndex:i]];
答案 2 :(得分:1)
我相信你必须这样做......应用程序是“沙盒”的,所以你将无法以任何其他方式访问文档目录。 (但如果我错了,请有人纠正我!)
或者,您可以在构建之前删除应用程序(按住它并点按主屏幕中的X)以擦除任何数据。