Hướng dẫn iOS 7 – Làm việc với File

Share:

Trong bài sau đây mình sẽ hướng dẫn các bạn cách thao tác cơ bản với file trong lập trình iOS 7 . Từ đó bạn có thể làm được việc đọc và ghi file trong ứng dụng của mình.

Mục tiêu:

  • Nắm được những cấu trúc cơ bản của tập tin
  • Dùng NSFileManager
  • Encode và Decode Object sử dụng NSArray, NSDictionary và file plist
  • Nâng cao: cách dùng NSKeyedArchiver/NSKeyedUnarchiver & Protocol <NSCoding>

Cấu trúc của file trong ứng dụng

cau-truc-file-trong-ung-dung

cau-truc-file-trong-ung-dung-1

Thư mục Documents

  • Chứa những dữ liệu mà người dùng không thể tự tạo ra bằng code
  • Folder con: Documents/Inbox

Thư mục Library

  • Chứa những dữ liệu media, resources, cache..
  • Thư mục con: Library/Application Support; Library/Caches; Library/Preferences

Thư mục tmp

  • Chứa những dữ liệu tạm thời
  • Mỗi lần app khởi động đều bị xóa
  • Thời gian tồn tại không dài
  • Ví dụ: tải file hình ảnh vào tmp/temp.png, rồi move nó vào thư mục chính

Thư mục bundle (app)

  • Chứa những file đã xuất hiện trên Xcode (đã dịch ra binary)
  • Không viết đè lên được (read-only)
  • Thường được sử dụng để tạo dữ liệu tĩnh ( các file xib, image, sound, plist, …

NSFileManager

  • Công cụ chuẩn dùng để thực hiện những thao tác cơ bản như : tạo, sao chép, xóa, lựa chọn…
  • Khởi tạo: lấy singleton defaultManager
  • NSFileManager *fileManager = [NSFileManager defaultManager];
  • Ngoài ra bạn cũng có thể khởi tạo bình thường để kết hợp với delegate khi thao tác với những file có dung lượng lớn.

Copy – Move – Delete

Copy
[fileManager copyItemAtPath:source toPath:target error:&error];
Move
[fileManager moveItemAtPath:source toPath:target error:&error];
Delete
[fileManager removeItemAtPath:source error:&error];

Create – Browse folder

  • Tạo một thư mục mới: [fileManager createDirectoryAtPath:folder withIntermediateDirectories:YES attributes:nil error:&error];
  • Browse folder: NSArray *content = [fileManager contentsOfDirectoryAtPath:folder error:&error]; (mỗi một phần tử là đường dẫn của tập tin/folder trong thư mục.

File – Folder Attributes (thuộc tính)

Mỗi một tập tin/thư mục đều có những thuộc tính riêng biệt

  • Xem thuộc tính: NSDictionary *dictionary = [fileManager attributesOfItemAtPath:filePath
    error:&error];
  • Gán thuộc tính: [fileManager setAttributes:@{} ofItemAtPath:filePath error:&error];

Một số attributes hay dùng:

Cấu trúc Plist

plist

Đọc – Ghi file Plist

  • Đọc file: NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile: plistPath];
    NSArray *array = [NSArray arrayWithContentsOfFile: plistPath];
  • Ghi file: [dictionary writeToFile:plistPath atomically:YES];
    [array writeToFile:plistPath atomically:YES];

Link tải code: http://www.mediafire.com/download/8uvdd13crarye4z/WorkingWithFiles.zip

Share:

Leave a reply