写入项目文件夹中的文件 - 不允许操作

时间:2014-05-09 11:26:33

标签: c# json windows-phone-8 isolatedstorage

我使用Json文件存储与应用程序相关的对象。 阅读有效,但我对写入文件感到困惑。

private static void WriteFileContentsAsync(string content)
{
    var local = IsolatedStorageFile.GetUserStoreForApplication(); //(new Uri("Common/DataModel/EventsData.json", UriKind.Relative));
    var eventsFile = local.OpenFile("Common/DataModel/EventsData.json", FileMode.Open);

    using (StreamWriter writer = new StreamWriter(eventsFile))
    {
        writer.WriteAsync(content);
    }
}

我无法打开项目中的文件 - >通用/ DataModel的/ EventsData.json 例外情况告诉我不允许操作。

这是我从同一个文件中读取的内容:

private static string ReadFileContents()
{
    var ResrouceStream = Application.GetResourceStream(new Uri("Common/DataModel/EventsData.json", UriKind.Relative));
    if (ResrouceStream != null)
    {
        using (Stream myFileStream = ResrouceStream.Stream)
        {
            if (myFileStream.CanRead)
            {
                StreamReader myStreamReader = new StreamReader(myFileStream);
                return myStreamReader.ReadToEnd();
            }
        }
    }
    return string.Empty;
}

但是myFileStream.CanWrite是假的。

什么是正确的选择?

修改

我尝试了另一种方式,但它应该写的文件没有改变而且没有错误发生:

private static void WriteFileContentsAsync(string content)
{
    FileStream fs = new FileStream("Common/DataModel/EventsData.json",FileMode.Open,FileAccess.Write);

    if (fs.CanWrite)
    {
        using (StreamWriter writer = new StreamWriter(fs))
        {
            writer.WriteAsync(content);
        }
    }
}

2 个答案:

答案 0 :(得分:2)

你不能只使用:

IsolatedStorageFile isoFile;
isoFile = IsolatedStorageFile.GetUserStoreForApplication();

// Open or create a writable file.
IsolatedStorageFileStream isoStream =
    new IsolatedStorageFileStream("Common/DataModel/EventsData.json",
    FileMode.OpenOrCreate,
    FileAccess.Write,
    isoFile);

StreamWriter writer = new StreamWriter(isoStream);

答案 1 :(得分:1)

对于其中一个人来说,这必须是一个很好的内容。我不能成为唯一一个"记因!

我一直在检查我的项目文件夹以查看文件是否已更改但我应该检查安装文件夹(在C:\ data ...中的某处)。写作确实有效:/

希望这些例子和这个答案能帮助许多旁路人。