删除指定目录下大小为0的所有文件(包含子目录)
2015-10-28 17:48
676 查看
删除指定目录下大小为0的所有文件(包含子目录)
- (void)deleteDateWithPath:(NSString *)filePath
{
/**
* 文档目录
*/
NSArray *doc = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = doc[0];
/**
* 缓存目录
*/
NSArray *cache = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cacheDir = cache[0];
/**
* 临时文件目录
*/
NSString *tepDir = NSTemporaryDirectory();
NSArray *array = @[docDir,cacheDir,tepDir];
NSFileManager *manager = [NSFileManager defaultManager];
for (NSInteger i = 0; i < array.count; i ++) {
NSString *path = array[i];
if (i == array.count - 1) {
path = [path stringByAppendingString:filePath];
}else{
path = [path stringByAppendingPathComponent:filePath];
}
if ([manager fileExistsAtPath:path]) { // 存在 目录
NSLog(@"存在");
NSLog(@"%@",path);
//存在目录,删除数据
NSArray *filels = [manager contentsOfDirectoryAtPath:path error:nil];
for (NSInteger k = 0; k < filels.count; k ++) {
NSString *deleteDir = [path stringByAppendingPathComponent:filels[k]];
long long filesize = [[manager attributesOfItemAtPath:deleteDir error:nil] fileSize];
NSLog(@"deleteDir:%@",deleteDir);
NSLog(@"%@",[manager attributesOfItemAtPath:deleteDir error:nil]);
NSLog(@"filesize:%lld",filesize);
if (filesize == 0 && [[manager attributesOfItemAtPath:deleteDir error:nil] fileType] == NSFileTypeRegular) {
[manager removeItemAtPath:deleteDir error:nil];
}
if ([[manager attributesOfItemAtPath:deleteDir error:nil] fileType] == NSFileTypeDirectory) { // 为文件夹
[self deleteFileWithPath:deleteDir];
}
}
}else{ // 不存在
NSLog(@"不存在");
NSLog(@"%@",path);
}
}
}
#pragma mark 递归
- (void)deleteFileWithPath:(NSString *)path
{
NSFileManager *manager = [NSFileManager defaultManager];
NSArray *filels = [manager contentsOfDirectoryAtPath:path error:nil];
for (NSInteger k = 0; k < filels.count; k ++) {
NSString *deleteDir = [path stringByAppendingPathComponent:filels[k]];
long long filesize = [[manager attributesOfItemAtPath:deleteDir error:nil] fileSize];
NSLog(@"deleteDir:%@",deleteDir);
NSLog(@"%@",[manager attributesOfItemAtPath:deleteDir error:nil]);
NSLog(@"filesize:%lld",filesize);
if (filesize == 0 && [[manager attributesOfItemAtPath:deleteDir error:nil] fileType] == NSFileTypeRegular) {
[manager removeItemAtPath:deleteDir error:nil];
}
if ([[manager attributesOfItemAtPath:deleteDir error:nil] fileType] == NSFileTypeDirectory) { // 为文件夹
[self deleteFileWithPath:deleteDir];
}
}
}
- (void)deleteDateWithPath:(NSString *)filePath
{
/**
* 文档目录
*/
NSArray *doc = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = doc[0];
/**
* 缓存目录
*/
NSArray *cache = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cacheDir = cache[0];
/**
* 临时文件目录
*/
NSString *tepDir = NSTemporaryDirectory();
NSArray *array = @[docDir,cacheDir,tepDir];
NSFileManager *manager = [NSFileManager defaultManager];
for (NSInteger i = 0; i < array.count; i ++) {
NSString *path = array[i];
if (i == array.count - 1) {
path = [path stringByAppendingString:filePath];
}else{
path = [path stringByAppendingPathComponent:filePath];
}
if ([manager fileExistsAtPath:path]) { // 存在 目录
NSLog(@"存在");
NSLog(@"%@",path);
//存在目录,删除数据
NSArray *filels = [manager contentsOfDirectoryAtPath:path error:nil];
for (NSInteger k = 0; k < filels.count; k ++) {
NSString *deleteDir = [path stringByAppendingPathComponent:filels[k]];
long long filesize = [[manager attributesOfItemAtPath:deleteDir error:nil] fileSize];
NSLog(@"deleteDir:%@",deleteDir);
NSLog(@"%@",[manager attributesOfItemAtPath:deleteDir error:nil]);
NSLog(@"filesize:%lld",filesize);
if (filesize == 0 && [[manager attributesOfItemAtPath:deleteDir error:nil] fileType] == NSFileTypeRegular) {
[manager removeItemAtPath:deleteDir error:nil];
}
if ([[manager attributesOfItemAtPath:deleteDir error:nil] fileType] == NSFileTypeDirectory) { // 为文件夹
[self deleteFileWithPath:deleteDir];
}
}
}else{ // 不存在
NSLog(@"不存在");
NSLog(@"%@",path);
}
}
}
#pragma mark 递归
- (void)deleteFileWithPath:(NSString *)path
{
NSFileManager *manager = [NSFileManager defaultManager];
NSArray *filels = [manager contentsOfDirectoryAtPath:path error:nil];
for (NSInteger k = 0; k < filels.count; k ++) {
NSString *deleteDir = [path stringByAppendingPathComponent:filels[k]];
long long filesize = [[manager attributesOfItemAtPath:deleteDir error:nil] fileSize];
NSLog(@"deleteDir:%@",deleteDir);
NSLog(@"%@",[manager attributesOfItemAtPath:deleteDir error:nil]);
NSLog(@"filesize:%lld",filesize);
if (filesize == 0 && [[manager attributesOfItemAtPath:deleteDir error:nil] fileType] == NSFileTypeRegular) {
[manager removeItemAtPath:deleteDir error:nil];
}
if ([[manager attributesOfItemAtPath:deleteDir error:nil] fileType] == NSFileTypeDirectory) { // 为文件夹
[self deleteFileWithPath:deleteDir];
}
}
}
相关文章推荐
- jQuery中的事件出路
- 在今天,我终于在csdn创建了自己的账号
- 使用Fiddler抓取Android数据包
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- Java栈的模拟实现
- 屏蔽鼠标右键功能JS
- c语言文法分析
- tomcat基础
- Android L Settings实现
- Linux上快速启动一个HTTP server
- AutoLayout正确动画方式
- cocos2dx c++ 使用sqlite数据库
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- 排序算法之冒泡排序
- 力战SDRAM(三)
- less css预编译语言学习
- cocos2dx[3.8] ——入口类AppDelegate.cpp
- 二叉树简单知识点
- Android Back Home键监听_广播监听
- OC进阶(四)