2015-02-11 14 views
6

tôi đọc qua các liên kết SO cho câu trả lờiLàm thế nào để đọc và ghi dữ liệu vào một tệp văn bản trong Swift bằng cách sử dụng sân chơi?

1. Read a file/URL line-by-line in Swift

2. Read and write data from text file

Link 2 cung cấp cho tôi những giải pháp nhưng vấn đề là thư mục. Đó là thư mục Tài liệu mặc định của dự án hiện tại.

Vì vậy, nếu tôi muốn đọc tệp từ "/Users/Prem/Desktop/File.txt", tôi nên sửa đổi mã nào?

Cách làm việc với thư mục tùy chỉnh để đọc và ghi dữ liệu trong tệp văn bản?

let dirs : [String]? = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String] 

if ((dirs) != nil) { 
    var dir = dirs![0]; //documents directory 
    //println(dir) 

    //dir = "/Users/Prem/Desktop" ----> If i give this path, its not creating the file 

    //Current Value in dir 
    //dir ----> "/Users/Prem/Library/Containers/com.apple.dt.playground.stub.OSX.FileIO-2159807F-CC21-4545-AC34-AD9F9898796B/Data/Documents" 

    let path = dir.stringByAppendingPathComponent("File.txt"); 
    println(path) 
    let text = "Rondom Text" 

    //writing 
    text.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding, error: nil); 

    //reading 
    let text2 = String(contentsOfFile: path, encoding: NSUTF8StringEncoding, error: nil) 
} 
+0

Run rằng mã, in ra dir trên dòng 4 (sau khi 'hãy dir = ... ') và nó sẽ cho bạn biết định dạng mà bạn cần chuỗi dir trong (bạn có thể và. có lẽ nên làm tương tự cho đường dẫn) –

+0

Chỉ cần gán 'let path =/path/to/your/file.txt' ... –

+0

@MartinR @MillieSmith: Biến 'dir' chứa'/Users/Prem/Library/Containers/com.apple.dt.playground.stub.OSX.FileIO-2159807F-CC21-4545-AC34-AD9F9898796B/Dữ liệu/Tài liệu' Nhưng nếu tôi thay thế đường dẫn đến: 'Người dùng/Prem/Desktop' hoặc một nơi nào đó khác hơn đường dẫn, nó không phải là tập tin. – iamprem

Trả lời

7

Sau khi cố gắng ra cho vài ngày nó là rõ ràng rằng,

Chúng tôi không thể truy cập khác hơn là khép kín thư mục của dự án, nếu chúng ta thử 'xử lý tập tin' ở sân chơi. Vì nó là sandboxed

Nhưng từ một dự án xcode, chúng ta có thể truy cập vào bất kỳ thư mục nào và thực hiện các hoạt động đọc/ghi.

tín: @robMayoff

Các vấn đề liên quan