Foundation 框架 NSFileManager,NSData 简单的文件操作

一、简单展示NSFileManager的使用

#import <Foundation/Foundation.h>



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

{



    @autoreleasepool {

        //创建文件管理对象

        NSFileManager *fm = [NSFileManager defaultManager];

        //要操作的文件名

        NSString *fname = @"myfile";

        //获取文件的字典

        NSDictionary *attr;

        //当前路径

        NSString *path;

        //获取当前路径

        path = [fm currentDirectoryPath];

        //NSLog(@"\nThe current path is : %@", path);

        

        //检测文件是否存在

        if ([fm fileExistsAtPath: fname] == NO) {

            //如果不存在则建立一个文件

            [fm createFileAtPath: fname contents: NULL attributes:nil];

            //NSLog(@"\nThe file is not exist!");

            //return 0;

        }

        //拷贝创建一个新文件, 新文件若已存在则报错

        if ([fm copyItemAtPath: fname toPath: @"newFile" error: NULL] == NO) {

            NSLog(@"\n Can't copy the file");

            return 1;

        }

        //检测两个文件内容是否相同

        if ([fm contentsEqualAtPath: fname andPath: @"newFile"] == NO) {

            NSLog(@"\nThe contents is not same");

            return 2;

        }

        //移动或者改名文件

        if ([fm moveItemAtPath: @"newFile"  toPath: @"myFile2" error:NULL] == NO) {

            NSLog(@"\nCan't change the name");

            return 3;

        }

        //获取文件数据字典

        if ((attr = [fm attributesOfItemAtPath: fname error:NULL]) == nil) {

            NSLog(@"\nGet attributets failed");

            return 4;

        }

        //文件大小

        NSLog(@"%@", attr[NSFileSize]);

        //文件类型

        NSLog(@"%@", attr[NSFileType]);

        //创建者

        NSLog(@"%@", attr[NSFileOwnerAccountName]);

        //

        NSLog(@"%@", attr[NSFileCreationDate]);

        //显示文件内容

        NSLog(@"\n Show the file contents");

        NSLog(@"\n%@", [NSString stringWithContentsOfFile: fname encoding:NSUTF8StringEncoding error:NULL]);

    }

    return 0;

}

 二、通过NSData完成副本制作

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

 2 {

 3 

 4     @autoreleasepool {

 5         //通过NSDate来完成文件副本制作

 6         NSFileManager *fm = [NSFileManager defaultManager];

 7         NSData *dt;

 8         

 9         dt = [fm contentsAtPath: @"myfile"];

10         

11         if (dt == nil) {

12             NSLog(@"Read file failed....");

13             return 0;

14         }

15         

16         //将缓冲区NSData中的内容复制到文件中

17         if ([fm createFileAtPath:@"myFavoriteFile" contents: dt attributes:nil] == NO) {

18             NSLog(@"Creat backups failed");

19             return 1;

20         }

21         

22         //读出文件内容

23         NSLog(@"\n%@", [NSString stringWithContentsOfFile:@"myFavoriteFile" encoding: NSUTF8StringEncoding error:NULL]);

24     }

25     return 0;

26 }

三、简单的目录操作

 1 #import <Foundation/Foundation.h>

 2 

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

 4 {

 5 

 6     @autoreleasepool {

 7         NSString *newDir = @"newDir";

 8         NSString *currentPath;

 9         NSFileManager *fm = [NSFileManager defaultManager];

10         

11         //获取当前路径

12         currentPath = [fm currentDirectoryPath];

13         NSLog(@"\nCurrentpath is : \n%@", currentPath);

14         

15         //在当前目录下新建一个目录

16         if ([fm createDirectoryAtPath:newDir withIntermediateDirectories:TRUE attributes:nil error:NULL] == NO) {

17             NSLog(@"\nCouldn't creat the directory...");

18             return 0;

19         }

20         

21         //更改路径名

22         if ([fm moveItemAtPath: newDir toPath: @"changeDir" error:NULL] == NO) {

23             NSLog(@"\nChange directory name failed");

24             return 2;

25         }

26         

27         //更改当前路径

28         if ([fm changeCurrentDirectoryPath:@"changeDir"] == NO) {

29             NSLog(@"\nChange current directory failed");

30             return 1;

31         }

32         NSLog(@"\nAfter change current directory.....");

33         currentPath = [fm currentDirectoryPath];

34         NSLog(@"\nCurrentpath is : \n%@", currentPath);

35     }

36     return 0;

37 }

 

你可能感兴趣的:(manager)