加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

NS类 - NSFileManager(读写删遍历文件下的文件)

(2013-04-23 12:40:09)
标签:

nsfilemanger

it

分类: Mac/IOS那些事
#import

int main(int argc, const char * argv[])
{

    @autoreleasepool {
 |--创建文件管理器
        NSFileManager *fm = [NSFileManager defaultManager];
        //定义文档类型和目录
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
        NSUserDomainMask, YES);
        NSString *documentDirectory = [paths objectAtIndex:0];
        //NSLog(@"%@,%d",documentDirectroy,[paths count]);
        // ouput:/Users/loveuu/Documents,1
        //管理目录定义为documentDirectory的目录
        [fm changeCurrentDirectoryPath:[documentDirectory stringByExpandingTildeInPath]];
        //创建文件一个braveryhui.txt的再documentDirectory下
        //创建文件fileName文件名称,contents文件的内容,
        //如果开始没有内容可以设置为nil,attributes文件的属性,初始为nil
        [fm createFileAtPath:@"braveryhui.txt" contents:nil attributes:nil];
        //删除braveryhui.txt
        //[fm removeItemAtPath:@"braveryhui.txt" error:nil];
        
         NSString *getFilePath = [documentDirectory
          stringByAppendingPathComponent:@"braveryhui.txt"];
        
|--写入数据
        NSString *str = @"braveryhui gogogogooog";
        int data = 1000;
        float data1 = 30.05f;
        //创建数据缓冲
        NSMutableData *write = [[NSMutableData alloc]init];
        //将要加入的数据写入缓冲区
        [write appendData:[str dataUsingEncoding:NSUTF8StringEncoding]];
        [write appendBytes:&data length:sizeof(data)];
        [write appendBytes:&data1 length:sizeof(data1)];
        //将缓冲区的数据写入到braveryhui.txt
        [write writeToFile:getFilePath atomically:YES];
        [write release];
|--读取数据
        NSString *getStr;
        int getData;
        float getData1;
        NSData *reader = [NSData dataWithContentsOfFile:getFilePath];
        getStr = [[NSString alloc]initWithData:[reader subdataWithRange:NSMakeRange(0, [str length])] encoding:NSUTF8StringEncoding];
        [reader getBytes:&getData range:NSMakeRange([str length], sizeof(data))];
        [reader getBytes:&getData1 range:NSMakeRange([str length]+sizeof(data), sizeof(data1))];
        NSLog(@"getstr =%@,getData=%d,getData1=%f",getStr,getData,getData1);
|--读取字节的方式来读
        uint8 b = 0;
        NSBundle *bundle = [NSBundle bundleWithPath:@"/Users/loveuu/Documents/"];
        NSString *getBundle = [bundle pathForResource:@"braveryhui" ofType:@"txt"];
        NSLog(@"bundlStr = %@",getBundle);
        //output bundlStr = /Users/loveuu/Documents/braveryhui.txt
        NSData  *getBundleData = [NSData dataWithContentsOfFile:getBundle];
        NSUInteger length = [getBundleData length];
        NSLog(@"getDemoLenght=%ld",length);
       
        for (int i=0; i<length; i++) {
            [getBundleData getBytes:&b range:NSMakeRange(i, sizeof(b))];
             NSLog(@"data i %d:%d",i,b);
        }
输出如下 :
 2013-04-23 15:10:58.065 FileManager[47320:303] getDemoLenght=30
2013-04-23 15:10:58.066 FileManager[47320:303] datai=0:b=98
2013-04-23 15:10:58.066 FileManager[47320:303] datai=1:b=114
2013-04-23 15:10:58.067 FileManager[47320:303] datai=2:b=97
2013-04-23 15:10:58.067 FileManager[47320:303] datai=3:b=118
2013-04-23 15:10:58.068 FileManager[47320:303] datai=4:b=101
2013-04-23 15:10:58.068 FileManager[47320:303] datai=5:b=114
2013-04-23 15:10:58.069 FileManager[47320:303] datai=6:b=121
2013-04-23 15:10:58.069 FileManager[47320:303] datai=7:b=104
2013-04-23 15:10:58.070 FileManager[47320:303] datai=8:b=117
2013-04-23 15:10:58.071 FileManager[47320:303] datai=9:b=105
2013-04-23 15:10:58.072 FileManager[47320:303] datai=10:b=32
2013-04-23 15:10:58.072 FileManager[47320:303] datai=11:b=103
2013-04-23 15:10:58.073 FileManager[47320:303] datai=12:b=111
2013-04-23 15:10:58.073 FileManager[47320:303] datai=13:b=103
2013-04-23 15:10:58.074 FileManager[47320:303] datai=14:b=111
2013-04-23 15:10:58.074 FileManager[47320:303] datai=15:b=103
2013-04-23 15:10:58.075 FileManager[47320:303] datai=16:b=111
2013-04-23 15:10:58.075 FileManager[47320:303] datai=17:b=103
2013-04-23 15:10:58.076 FileManager[47320:303] datai=18:b=111
2013-04-23 15:10:58.077 FileManager[47320:303] datai=19:b=111
2013-04-23 15:10:58.077 FileManager[47320:303] datai=20:b=111
2013-04-23 15:10:58.078 FileManager[47320:303] datai=21:b=103
2013-04-23 15:10:58.078 FileManager[47320:303] datai=22:b=232
2013-04-23 15:10:58.079 FileManager[47320:303] datai=23:b=3
2013-04-23 15:10:58.079 FileManager[47320:303] datai=24:b=0
2013-04-23 15:10:58.080 FileManager[47320:303] datai=25:b=0
2013-04-23 15:10:58.080 FileManager[47320:303] datai=26:b=102
2013-04-23 15:10:58.081 FileManager[47320:303] datai=27:b=102
2013-04-23 15:10:58.081 FileManager[47320:303] datai=28:b=240
2013-04-23 15:10:58.100 FileManager[47320:303] datai=29:b=65  
    }
    return 0;
}
|--遍历文件夹下的文件
使用NSFileManager取得目录下所有文件(遍历所有文件)

    - (NSArray*) allFilesAtPath:(NSString*) dirString {

        NSMutableArray* array = [NSMutableArray arrayWithCapacity:10];

        NSFileManager* fileMgr = [NSFileManager defaultManager];

        NSArray* tempArray = [fileMgr contentsOfDirectoryAtPath:dirString error:nil];

        for (NSString* fileName in tempArray) {

            BOOL flag = YES;

            NSString* fullPath = [dirString stringByAppendingPathComponent:fileName];

            if ([fileMgr fileExistsAtPath:fullPath isDirectory:&flag]) {

                if (!flag) {

                    [array addObject:fullPath];

                }

            }

        }

     return array;

    }

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有