无法将数据写入文件。所有 System.IO 方法均无效。 Xamarin.Forms

Can't write data to a file. All System.IO methods doesn't work. Xamarin.Forms

我正在使用 Xamarin.Forms 制作一个简单的 iOS 应用程序。我使用 SQLiteMono.Data.Sqlite library。我需要通过 INSERT 命令将数据插入数据库并将数据写入文本文件。我已存储到 iOS 项目的 Resources 目录中的所有文件(文本文件、.db 文件、图像)。 当我尝试将数据写入文本文件或 INSERT 写入我的数据库时,程序什么都不做。数据不是 inserted/written。并且没有抛出异常。例如:

public partial class SomePage : ContentPage
{
    public SomePage()
    {
        InitializeComponent();

        using (StreamWriter sw = new StreamWriter("some_file.txt"))
        {
            sw.WriteLine("some data");
        }
    }
}

数据没有写入,文件还是空的。

我使用 macOS Catalina 10.15.4 和 Visual Studio Mac 8.6.1

我已经搜索过这个问题,但没有什么可以解决这个问题。等待你的答案!谢谢!

谢谢@Jason,他向我展示了正确的方法:)所以解决方案是在应用程序启动时将 Resources 中附加的文件复制到 writeable 文件夹,例如 iOS 应用程序沙箱中的 Documents 文件夹。所以我们可以使用 Environment class 来访问这个文件夹。

public partial class SomePage : ContentPage
{
    public SomePage()
    {
        string filepath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "some_file.txt");
        File.Copy("some_file.txt", filepath); // From Resource folder to Documents
        File.WriteAllText(filepath, "Some text");
    }
}