2010-02-10 29 views
0

我需要閱讀,編輯保存一個xml文件。換句話說,我想再次寫入同一個文件,而不是創建一個新的xml文件。閱讀和編輯部分工作,但不是節省。在iPhone上寫入xml文件(Linq = to = Xml和MonoTouch)?

的LINQ到XML代碼的儲蓄很簡單:

doc.Save(this.Path); 

工作iPhone模擬器但投在設備上System.UnauthorizedAccessException的。 xml文件在MonoDevelop中被裝飾爲「內容」。

任何幫助表示讚賞。

/pom

+1

如果你想保存文件? – 2010-02-10 21:17:32

+0

我將它保存到「資源」區域。 – Pompair 2010-02-10 22:26:29

回答

6

您需要將文件保存到您有寫權限的位置之一:

的/文件目錄可以使用檢索: VAR文件= Environment.GetFolderPath(Environment.SpecialFolder.Personal);

我們的「如何存儲文件」進行了詳細介紹:

http://wiki.monotouch.net/HowTo/Files/HowTo:_Store_Files

0

您只能保存到您的應用程序的文檔目錄中。你可以這樣說:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

什麼是this.Path價值?

+0

謝謝,這可能是我需要的。但是,我現在需要弄清楚如何在MonoTouch中調用該函數。 this.Path的值是xml文件的正義名稱。我使用相同的值來加載XML文件,並且工作。 – Pompair 2010-02-10 22:33:45

+1

經過一番谷歌搜索發現對System.Environment.SpecialFolder.MyDocuments的引用並試圖這樣: string docpath = System.Environment.SpecialFolder.MyDocuments.ToString()。Replace(「Personal」,「Documents」 ); string mypath = System.IO.Path.Combine(docpath,this.Path); doc.Save(mypath); mypath中的值是文件/ myxml.xml 然而,這也不行,它會拋出「System.IO.IsolatedStorage.IsolatedStorageException:找不到路徑的一部分」 – Pompair 2010-02-10 22:53:31

+0

看到這個(很完整)答案在這裏: http://stackoverflow.com/questions/1829954/write-to-a-file-in-monotouch – Don 2010-02-11 22:29:22

0
var documents = Environment.GetFolderPath (Environment.SpecialFolder.Personal); 
var document = Directory.GetFiles(documents);