Не могу записать данные в файл. Все методы System.IO не работают. Xamarin.Forms - PullRequest
0 голосов
/ 29 мая 2020

Я делаю простое приложение iOS, используя Xamarin.Forms. Я использую от SQLite до Mono.Data.Sqlite library. Мне нужно вставить данные в базу данных с помощью команды INSERT и записать данные в текстовый файл. Все файлы (текстовые файлы, .db-файл, изображения) я сохранил в директории Resources в проекте iOS. Когда я пытаюсь записать данные в текстовый файл или INSERT в свою базу данных, программа ничего не делает. Данные не вставляются / не записываются. И никаких исключений не было. Например:

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 для Ma c 8.6.1

Я искал эту проблему, но ничто не может решить эту проблему. Ждите ваших ответов! Спасибо!

1 Ответ

0 голосов
/ 02 июня 2020

Спасибо, @Jason, он показал мне правильный путь :) Итак, решение состоит в том, чтобы скопировать файлы, которые прикреплены в Resources при запуске приложения, в записываемую папку, например * 1005 Папка * Documents в iOS Application Sandbox. Таким образом, мы можем использовать класс Environment для доступа к этой папке.

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");
    }
}
...