现在的位置: 首页 > 综合 > 正文

IOS文件常用操作 NSFileManager—-不断更新中

2014年09月05日 ⁄ 综合 ⁄ 共 2374字 ⁄ 字号 评论关闭
============================================================
博文原创,转载请声明出处
============================================================

-------文件的创建,遍历,得到文件属性(创建日期等),删除等操作

直接从工程里面扒出来的,不过写的很清晰。

NSDateFormatter * dateFormatter = [[[NSDateFormatter alloc] init]autorelease];
    [dateFormatter setDateFormat:@"yyyy_MM_dd"];
    NSString* dataStr = [dateFormatter stringFromDate:[NSDate date]];
    
    NSString *dicpath = [NSString stringWithFormat:@"%@/Documents/logs",NSHomeDirectory()];
    NSString *path = [NSString stringWithFormat:@"%@/log%@.html",dicpath,dataStr];
    NSFileManager *manager = [NSFileManager defaultManager];
    
    //如果不存在当天的日志,则新建
    if ([manager fileExistsAtPath:path] == NO) {
        //删除max interval 以上的log
        NSFileManager* fm= [[[NSFileManager alloc] init]autorelease];
        NSArray *levelList = [fm contentsOfDirectoryAtPath:dicpath error:nil ] ;
        
        for (NSString *fname  in levelList) {
            NSString *fpath = [NSString stringWithFormat:@"%@/%@",dicpath,fname];
            NSDictionary *fileAttributes = [manager attributesOfItemAtPath:fpath error:nil];
            NSDate * creationDate=nil;
            if ((creationDate = [fileAttributes objectForKey:NSFileCreationDate])) {
                NSTimeInterval interval = [creationDate timeIntervalSinceNow];
                //printf("%s's interval is: %f\n",[fpath UTF8String ],interval);
                if ((interval*-1) >MAX_INTERVAL*24*60*60) {
                    [manager removeItemAtPath:fpath error:nil];
                    //NSLog(@"delete file:%@ \n",fpath );
                }
            }
        }
        
        //创建新log
        [manager createDirectoryAtPath:dicpath withIntermediateDirectories:YES attributes:nil error:nil];
        [manager createFileAtPath:path contents:nil attributes:nil];
        
        ///Users/user/Library/Application Support/iPhone Simulator/5.1/Applications/5403DF94-1B63-4CCF-8A5B-548ED5902DBE/hello.app
        NSString *stylePath = [NSString stringWithFormat:@"%@/FALog.css",[[NSBundle mainBundle] resourcePath]];
        NSString *styleStr = [NSString stringWithContentsOfFile:stylePath encoding:NSUTF8StringEncoding error:nil];
        //        //NSLog(@"styleStr:%@",styleStr);
        str = [NSString stringWithFormat:@"%@ \n%@",styleStr,str];
        
    }
    
    NSDictionary * attributes = [manager attributesOfItemAtPath:path error:nil];
    long long fileSize = [[attributes objectForKey:NSFileSize] longLongValue];
    NSFileHandle *uFile = [NSFileHandle fileHandleForWritingAtPath:path];
    [uFile seekToFileOffset:fileSize];
    [uFile writeData:[str dataUsingEncoding:NSUTF8StringEncoding]];

-----得到file 大小

NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:URL error:&attributesError];

NSNumber *fileSizeNumber = [fileAttributes objectForKey:NSFileSize];
long long fileSize = [fileSizeNumber longLongValue];

抱歉!评论已关闭.