iOS NSFileManeger 計算文件是否超時,和計算文件夾下文件的總大小

//得到指定文件距離上次修改時間是否達到了指定值(秒)timeoutspa

+(BOOL)isTimeout:(NSString *)path time:(NSTimeInterval)timeout遞歸

{string

    //得到當前時間io

    NSTimeInterval now = [[NSDate date] timeIntervalSince1970];object

    

    NSDictionary *dict = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil];date

    // 取得了文件上次修改的時間file

    NSDate *d = [dict objectForKey:NSFileModificationDate];float

    if (now-[d timeIntervalSince1970]>timeout) {im

        return YES;error

    }

    return NO;

}

//計算文件夾下文件的總大小

+(float)fileSizeForDir:(NSString*)path

{

    NSFileManager *fileManager = [NSFileManager defaultManager];

    

    //記錄總值

    unsigned long long totalSize =0;

    //得到指定路徑path的全部內容(文件和文件夾)

    NSArray* array = [fileManager contentsOfDirectoryAtPath:path error:nil];

    for(int i = 0; i<[array count]; i++)

    {

        //拼接全路徑

        NSString *fullPath = [path stringByAppendingPathComponent:[array objectAtIndex:i]];

        BOOL isDir;

        

        //若是指定路徑存在而且不是文件夾

        //NSLog(@"fullPath:%@",fullPath);

        //先判斷是否存在,再判斷是文件夾仍是文件

        if ([fileManager fileExistsAtPath:fullPath isDirectory:&isDir] && !isDir)

        {

            //得到文件屬性

            NSDictionary *fileAttributeDic=[fileManager attributesOfItemAtPath:fullPath error:nil];

            totalSize+=[[fileAttributeDic objectForKey:NSFileSize] unsignedLongLongValue];

        }

        else

        {

            //若是是文件夾,遞歸

            totalSize+=[self fileSizeForDir:fullPath];

        }

    }

    return totalSize;

}

相關文章
相關標籤/搜索