zoukankan      html  css  js  c++  java
  • object-c中管理文件和目录:NSFileManager使用方法

    对于NSFileManager,文件或目录是使用文件的路径名唯一标识的。每一个路径名都是一个NSString对象,它可以是相对路径名,也可以是完整路径名。

    相对路径名是相对于当前目录的路径名。所以,文件名file.m意味着当前目录中的file.m。斜线字符用于隔开路径中的目录列表。

    完整路径名,也称绝对路径名,以斜线“/”开头,斜线实际上就是一个目录,称为 根目录。

    这个特殊字符(~)用作用户主目录的缩写。点“ . ”表示当前目录,两点“  .. ”表示父目录

        下面是常见的NSFileManager文件方法:

    NSFileManager处理文件的方法

    下面是一些基本的文件操作的代码示例:

    1. #import <Foundation/Foundation.h>  
    2.   
    3. int main(int argc, const char * argv[])  
    4. {  
    5.   
    6.     @autoreleasepool {  
    7.           
    8.         NSString *fName = @"testfile.txt";  
    9.         NSFileManager *fm ;  
    10.         NSDictionary * attr;  
    11.           
    12.         //创建文件管理对象  
    13.         fm = [NSFileManager defaultManager];  
    14.           
    15.         //判断文件是否存在  
    16.         if([fm fileExistsAtPath:fName] == NO)  
    17.         {  
    18.             NSLog(@"File doesn't exist!");  
    19.             return 1;  
    20.         }  
    21.               
    22.         //将 testfile.txt 文件拷贝出一个新的文件 newfile.txt  
    23.         if([fm copyPath:fName toPath:@"newfile.txt" handler:nil] == NO)  
    24.         {  
    25.             NSLog(@"File copy failed!");  
    26.             return 2;  
    27.         }  
    28.           
    29.         //判断两个文件内容是否相等  
    30.         if([fm contentsEqualAtPath:fName andPath:@"newfile.txt"] == NO)  
    31.         {  
    32.             NSLog(@"File are not equal!");  
    33.             return 3;  
    34.         }  
    35.                   
    36.         //将文件 newfile.txt 重命名为 newfile2.txt  
    37.         if([fm movePath:@"newfile.txt" toPath:@"newfile2.txt" handler:nil] == NO)  
    38.         {  
    39.             NSLog(@"File rename failed!");  
    40.             return 4;  
    41.         }  
    42.   
    43.         //获取文件 newfile2.txt 的大小,并输出  
    44.         if((attr = [fm fileAttributesAtPath:@"newfile2.txt" traverseLink:NO]) == nil)  
    45.         {  
    46.             NSLog(@"Couldn't get file attributes!");  
    47.             return 5;  
    48.         }  
    49.           
    50.         NSLog(@"File size is %i bytes",[[attr objectForKey:NSFileSize] intValue]);  
    51.           
    52.         //移出原始文件testfile.txt  
    53.         if([fm removeFileAtPath:fName handler:nil] == NO)  
    54.         {  
    55.             NSLog(@"File removal failed!");  
    56.             return 6;  
    57.         }  
    58.           
    59.         NSLog(@"All operations were successful!");  
    60.         //输出文件内容  
    61.         NSLog(@"%@",[NSString stringWithContentsOfFile:@"newfile2.txt" encoding:NSUTF8StringEncoding error:nil]);  
    62.           
    63.     }  
    64.     return 0;  
    65. }  
    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[])
    {
    
        @autoreleasepool {
            
            NSString *fName = @"testfile.txt";
            NSFileManager *fm ;
            NSDictionary * attr;
            
            //创建文件管理对象
            fm = [NSFileManager defaultManager];
            
            //判断文件是否存在
            if([fm fileExistsAtPath:fName] == NO)
            {
                NSLog(@"File doesn't exist!");
                return 1;
            }
                
            //将 testfile.txt 文件拷贝出一个新的文件 newfile.txt
            if([fm copyPath:fName toPath:@"newfile.txt" handler:nil] == NO)
            {
                NSLog(@"File copy failed!");
                return 2;
            }
            
            //判断两个文件内容是否相等
            if([fm contentsEqualAtPath:fName andPath:@"newfile.txt"] == NO)
            {
                NSLog(@"File are not equal!");
                return 3;
            }
                    
            //将文件 newfile.txt 重命名为 newfile2.txt
            if([fm movePath:@"newfile.txt" toPath:@"newfile2.txt" handler:nil] == NO)
            {
                NSLog(@"File rename failed!");
                return 4;
            }
    
            //获取文件 newfile2.txt 的大小,并输出
            if((attr = [fm fileAttributesAtPath:@"newfile2.txt" traverseLink:NO]) == nil)
            {
                NSLog(@"Couldn't get file attributes!");
                return 5;
            }
            
            NSLog(@"File size is %i bytes",[[attr objectForKey:NSFileSize] intValue]);
            
            //移出原始文件testfile.txt
            if([fm removeFileAtPath:fName handler:nil] == NO)
            {
                NSLog(@"File removal failed!");
                return 6;
            }
            
            NSLog(@"All operations were successful!");
            //输出文件内容
            NSLog(@"%@",[NSString stringWithContentsOfFile:@"newfile2.txt" encoding:NSUTF8StringEncoding error:nil]);
            
        }
        return 0;
    }
    



  • 相关阅读:
    24. Swap Nodes in Pairs
    2. Add Two Numbers
    【设计模式】结构型模式
    【设计模式】创建型模式
    【设计模式】初识
    【自考总结】走过的弯路,都是你成长的旅途
    【VMware vSphere】再谈VMware vSphere
    评估网站性能的专业术语
    C/S与B/S之辩
    【VMware vSphere】Veeam备份
  • 原文地址:https://www.cnblogs.com/jiangyuxuan/p/2950988.html
Copyright © 2011-2022 走看看