【发布时间】:2016-01-02 00:00:48
【问题描述】:
简介
在我的项目中,我必须删除文件夹及其内容,所以我尝试使用这个接受的答案ClickHere
它有效,我认为任务已经结束,但在删除整个文件夹(目录)后,我看到内存仍然分配但文件不存在。
这是我删除目录(文件夹)的代码.
-(BOOL)removeItem:(NSString*)name{
//name: is directory(folder)'s name
NSString*path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
path = [path stringByAppendingPathComponent:@"Normal"];
path = [path stringByAppendingPathComponent:name];
NSError* err;
NSArray* list = [[NSFileManager defaultManager]contentsOfDirectoryAtPath:path error:&err];
if(err){
NSLog(@"\n##CONTENTS OF DIRECTORY ERROR:->\n%@",err.localizedDescription);
}
//if array's count is not zero(0) it means directory has files available.
if(list.count >= 1){
for(NSString* string in list){
[[NSFileManager defaultManager]removeItemAtPath:[path stringByAppendingPathComponent:string] error:&err];
if(err){
NSLog(@"\n##FOLDER IN FOLDER ERROR:->\n%@",err.localizedDescription);
}
}
[[NSFileManager defaultManager]removeItemAtPath:path error:&err];
return YES;
}else{
[[NSFileManager defaultManager]removeItemAtPath:path error:&err];
if (err) {
return NO;
}
return YES;
}
}
提前致谢。
【问题讨论】:
-
请解释您所说的“内存仍在分配”是什么意思。
-
@A-Live,当我在真实设备上安装我的应用程序时。全新安装时,设置->常规->使用->管理存储中显示的应用程序大小约为6mb。比我添加一些文件(视频文件)和大小增加。但是当我删除一些文件(视频文件)(是的,文件被删除)时,我的应用程序的大小似乎没有减少。
-
有可能空间确实被释放了,但统计信息并没有立即更新,自动刷新可能需要一些时间。也可能是统计数据被缓存并且需要以某种方式重置,如果它们没有到期日期重新启动设置或设备可能会有所帮助。如果您有证据表明文件系统由于空间不足而不允许您创建新文件,并且您认为发生这种情况是因为空间实际上并未释放,请添加有关您如何得出此结论的更多详细信息。
标签: ios objective-c xcode nsfilemanager nshomedirectory