ios資料處理 簡單檔案處理

來源:互聯網
上載者:User

1.檔案路徑的擷取

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    NSString *homeDirectory = NSHomeDirectory();//獲得Home路徑,應用程式全路徑
    NSString *fileDirectory = [homeDirectory stringByAppendingPathComponent:@"temp/app_data.plist"];
    
    //NSSearchPathForDirectoriesInDomains檢索路徑的方法
    NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentDirectory = [pathArray objectAtIndex:0];
    NSString *fileDirectory2 = [documentDirectory stringByAppendingPathComponent:@"file.txt"];
    
    
    NSString *tempDirectory = NSTemporaryDirectory();
    NSString *file = [tempDirectory stringByAppendingPathComponent:@"file.txt"];

2.檔案操作 

  NSFileManager常用的函數: 

    建立新檔案。

- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)contents attributes:(NSDictionary *)attributes;   

        path :需要指定檔案的全路徑;contents,指定檔案的內容;attributes:說明檔案的屬性。該函數的傳回值為布爾型,用來表示建立成功或失敗。

 

   建立路徑。

- (BOOL)createDirectoryAtPath:(NSString *)path attributes:(NSDictionary *)attributes;

 

   刪除檔案。 

 - (BOOL)removeFileAtPath:(NSString *)path handler:(id)handler

handler:執行fileManager:willProcessPath:和fileManager:shouldProceedAfterError回呼函數。handler也可以被置為nil,這樣當刪除檔案出錯的時候,會終止操作,並返回NO。 

 

 

以儲存圖片為例,主要用到了NSFileManager(使用這個類,可以很方便地訪問檔案。實現建立、刪除、複製粘貼等) 

 注意:  1.使用textField的委託方法textFiledShouldReturn:,其協議是UITextFieldDelegate

           2. 設定textFileld的delegate屬性

           3.設定textFileld的Return Key為Go

 

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    NSArray *paths= NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *filePath = [paths objectAtIndex:0];
    filePath = [filePath stringByAppendingPathComponent:[textField.text lastPathComponent]];
    
    NSLog(@"filePath:%@ ",filePath);
    
    //隱藏檔的全路徑和資料
    NSData *imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:textField.text]];
    
    if (imageData)
    {
        UIImage *image = [UIImage imageWithData:imageData];
        [imageView setImage:image];
        [image release];
        
        //使用NSFileManager對象的createFileAtPath:contents:attributes:方法在指定的位置使用資料建立圖片檔案,如果需要改變檔案的屬性,建立包含對應索引值的NSDictionary對象,傳給attributes。
        [[NSFileManager defaultManager] createFileAtPath:filePath contents:imageData attributes:nil];   
        
    }
    
    [textField resignFirstResponder];
    return YES;

}

檔案存放在Caches路徑下: 

 

3.檔案讀寫 

 (1)plist檔案的讀寫 (有局限性,只有它支援的資料類型才可以被序列化)

    [testArray writeToFile:filePath atomically:YES]; 

    註:最後一個參數:如果是YES,寫入檔案的時候,將不會直接寫入指定路徑,而是會將資料寫入一個“輔助檔案”,寫入成功後,再將輔助檔案複製到指定路徑。這樣的話,實際操作的對象時輔助檔案,從而可以避免原檔案資料受到破壞。雖然可能增大系統的開銷,但是為了保證資料的正確性,還是值得的。建議始終將改值設為YES。 

  (2)Archiver 歸檔資料的讀寫 (可以儲存複雜的資料對象)

   類似“編碼”、“解碼” 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.