2010-02-10 41 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);