2015-02-11 43 views
6

我通過這些鏈接SO閱讀的答案如何使用操場在Swift中將數據讀寫到文本文件?

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

2. Read and write data from text file

鏈接2給我提供瞭解決方案,但問題是目錄。它是默認的當前項目的Document目錄。

因此,如果我想從「/Users/Prem/Desktop/File.txt」讀取文件,我應該對該代碼進行哪些修改?

如何使用自定義目錄來讀取和寫入文本文件中的數據?

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

運行的代碼,打印出DIR第4行,你可以和(後'讓DIR = ...'),它應該告訴你,你需要在目錄字符串格式(。可能應該這樣做的路徑) – 2015-02-11 20:10:30

+0

只要指定'讓路徑= /路徑/到/ your/file.txt ... – 2015-02-11 20:11:14

+0

@MartinR @MillieSmith:'dir'變量包含'/用戶/ Prem /庫/容器/ com.apple.dt.playground.stub.OSX.FileIO-2159807F-CC21-4545-AC34-AD9F9898796B/Data/Documents'但是,如果我將路徑替換爲:'Users/Prem/Desktop'或其他地方路徑,它不寫入文件。 – iamprem 2015-02-11 20:54:15

回答

7

嘗試了幾天後,很顯​​然,

我們不能訪問以外的其他項目的自包含的目錄,如果我們在操場上嘗試「文件處理」。因爲它是沙盒

但是從xcode項目中,我們可以訪問任何目錄並執行讀/寫操作。

學分:@robMayoff

相關問題