我是Android编程的新手。我有一个代码,该代码在指定的文件夹中创建一个文件,然后尝试向其中写入一些内容。如下所示:

        path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);
        var filename = Path.Combine(path, "Test.xml");
        Directory.CreateDirectory (path);
        if (!File.Exists (path + "/" + "Test.xml")) {
            File.Create (path + "/" + "Test.xml");
        }
        using (var streamWriter = new StreamWriter(filename, true))
        {
            streamWriter.WriteLine("<?xml version='1.0' encoding='utf-8'?>");
            streamWriter.WriteLine ("<Apples>");
            streamWriter.WriteLine ("</Apples>");
        }

在使用(var streamWriter = new StreamWriter(filename,true))的行中,我收到关于路径错误的共享冲突。

有人可以向我指出我要去哪里了,并提供解决方案。

谢谢,
阿尼类

最佳答案

为什么要创建文件,然后重新打开文件以写入文件。 StreamWriter有一个方法可以做到这一点。如果不存在,它将创建一个新文件。

使用默认编码和缓冲区大小为指定路径上的指定文件初始化StreamWriter类的新实例。如果文件存在,则可以将其覆盖或附加。如果文件不存在,则此构造方法将创建一个新文件。

StreamWriter无法访问该文件,因为File.Create返回了您没有使用的FileStream。

如上所述,不需要File.Create。您还可以使用:

using (var writer = new StreamWriter(File.Create(statusTxtPath)))
{
   // do work here.
}

这将消耗文件流并关闭它。每当使用流以及与流进行交互的大多数类时,请确保使用using()块以确保正确释放句柄。

关于path - 在Xamarin中共享路径冲突,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23774186/

10-12 02:38
查看更多