FoundationフレームワークNSFileManager、NSDataの簡単なファイル操作

使用NSFileManagerのシンプルなショーケース

#importを <ファンデーション/ Foundation.h> int型のmain(int型 ARGC、CONST のchar * ARGV [])
{ 
    @autoreleasepool { // ファイル管理ターゲットを作成 
        NSFileManager FM * = [NSFileManager defaultManager];
         // 操作するファイル名 
        NSStringの* = fnameに"@ myfileの" ;
         //は、辞書ファイルを取得する 
        NSDictionaryの* のattr;
         // 現在のパス 
        * NSStringのパスを;
         // 現在のパスを取得する 
        パスを= [FM currentDirectoryPath];
         //

 

        NSLog(@ "\ nのパス現在は、次のとおりです。%@"、パス); 
        
        // ファイルが存在するかどうかを検出する
        IF:(== [fnameはFM fileExistsAtPath] {NO)
             // それはファイルが存在しない場合は
            、[FMのcreateFileAtPathを:fnameは内容量:NULL属性:nilを];
             // のNSLog(@ "\ nのは、ファイルが存在しません!");
             // 0を返す; 
        }
         // コピーは、新しいファイルを新しいファイルを作成するために、すでにエラーがある場合
        IF([FMのcopyItemAtPath :toPathのFNAME:@ " にnewFile "エラー:NULL] == NO){ 
            のNSLog(@ " \ n型インクルードファイルをコピーすることはできません" );
             リターン 。1  ;
        }
         // ファイルの内容と同じ2かどうかを検出し
        たIF([::andPathのFNAME FM contentsEqualAtPath "@ にnewFile " ==] {NO)
            のNSLog(@ " \ nの内容が同じではありません" ;)
             戻る 2 ; 
        } 
        // 移動したり、名前を変更したファイル
        IF([FM moveItemAtPath:"@ にnewFile "   :toPath @ " myfile2 "エラー:NULL] == NO){ 
            のNSLog(@ " \ nCan't変更名" );
             リターン 。3 
        } 
        //辞書データファイルを取得
        IF((ATTR = [FM attributesOfItemAtPath:エラーFNAME:NULL])== nilを){ 
            のNSLog(@ " する\ n attributetsに失敗しました" );
             リターン 。4 ; 
        } 
        // ファイルサイズ 
        のNSLog(@ " %の@ " 、ATTR [NSFileSize]);
         // ファイルタイプ 
        のNSLog("@ の@ " 、ATTR [NSFileType]);
         // 作成者 
        のNSLog("@ の@ " 、ATTR [NSFileOwnerAccountName]);
         //
         のNSLog(@ " % @ ")[NSFileCreationDate] ATTR。
        // 显示文件内容 
        のNSLog(@ " \ n個のファイルの内容を表示します" ); 
        (のNSLog "@ \ n%@ " 、[NSStringのstringWithContentsOfFile:FNAMEエンコード:NSUTF8StringEncodingエラー:NULL])。
    } 
    戻り 0 
}

 第二に、完全なNSDataののコピーを作成することにより、

1  INTメイン(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(@ " 読み取りファイルが失敗した.... " );
 13れます             戻り 0 ;
 14          }
 15          
16          // のNSDataのファイルにバッファの内容をコピー
17。         IF([FM createFileAtPath:"@ myFavoriteFile " DT属性:ゼロ目次] == NO){
 18である              のNSLog("@ クリートバックアップ失敗" ;)
 。19              リターン 1 ;
 20          }
 21である         
22れる         //はファイルの内容を読み出す
23で          のNSLog(@" \ N-%@ ":[NSStringのstringWithContentsOfFile @" myFavoriteFile エンコーディング:NSUTF8StringEncodingエラー:NULL])。
24      }
 25      リターン 0 26 }

第三に、シンプルなディレクトリの操作

1つ の#import <ファンデーション/ Foundation.h>
 2  
3  int型のmain(int型 ARGC、CONST  のchar *のARGV [])
 4  {
 5  
6      @autoreleasepool {
 7          NSStringの* NEWDIR = @ " NEWDIR " 8          NSStringの* 電流経路;
9          NSFileManager * FM = [NSFileManager defaultManager]。
10          
11          // 获取当前路径
12          電流経路= [FM currentDirectoryPath]。
13          のNSLog(@」\ nCurrentpathはIS:\ N- @%" 、電流経路);
 14          
15          // カレントディレクトリ内に新しいディレクトリを作成
16を         IF([FM createDirectoryAtPath:NEWDIR withIntermediateDirectories:TRUE属性:なしエラー:NULL] == NO){
 17              のNSLog(@ " \ nCouldn'tは...ディレクトリレコード生成" );
 18が             戻り 0 ;
 19          }
 20である         
21である         // パス名変更
22である         IF([FM moveItemAtPath:NEWDIR toPath:@ " changeDir "エラー:NULL] == NO) {
 23              のNSLog(@ "\ nChangeディレクトリ名が失敗" );
 24              リターン 2 ;
 25          }
 26          
27          // 更改当前路径
28          であれば([FMのchangeCurrentDirectoryPath:@" changeDir " ] == NO){
 29              のNSLog(@" \ nChangeカレントディレクトリが失敗) ;
 30              リターン 1 ;
 31          }
 32          のNSLog(@ " \カレントディレクトリを変更nAfter ..... " );
 33          電流経路=【FM currentDirectoryPath]。
34          のNSLog(@ " \ nCurrentpathである:\ n%の@ " 、電流経路)。
35      }
 36      リターン 0 37 }

 

ます。https://www.cnblogs.com/pretty-guy/p/3957603.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_34254823/article/details/93438720