path - 在 xamarin 的路径上共享违规

标签 path sharing

我对 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/

相关文章:

c++从另一个文件访问函数

macos - 在网络 PC 上查看 Mac Localhost

Java - 使用 DirectoryStream 计算文件夹中的所有文件扩展名

d3.js - 如何在 d3.js 中拖动路径

java - 如何正确修补 JAR 文件中的 Java 类?

c++ - 与另一个类 C++ 共享对象

windows - 让 Graphic Magick 检测 Ghostscript 以在 Windows 上阅读 pdf。如何将 WINDOWS CMD 上的 Ghostscript 调用名称更改为 'gs' ?

node.js - Windows下Node.js中的非规范化路径分隔符

iOS:Skype 在 UIActivityViewController 中无法用于图像共享

javascript - Facebook sharer.php 是否已更改为不再接受详细参数?