Как сохранить текстовый файл с помощью xamarin и где сохранить файл - PullRequest
0 голосов
/ 05 ноября 2018

Я новичок в Xamarin. У меня простое приложение; Где у меня есть поле для заметок и сфотографировать функциональность. Я использую медиа-плагин для фотографирования. Картинка явно сохраняется в телефонной галерее. Но я также хотел сохранить в телефоне текстовый файл, который содержит ввод из поля заметок.

Я пытаюсь сохранить текстовый файл.

Структура продукта. Я использую общий проект.

Структура файла и классы изображений

Пример изображения приложения

У меня есть кнопка сохранения. То, что я хочу сделать, это когда кнопка сохранения нажата; сохранить текстовый файл, который имеет пользовательский ввод из поля заметок.

Вот действие моей кнопки сохранения

я искал на этом сайте https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/files?tabs=windows

Я попробовал код, но ничего не получалось.

private async void Take_Photo_Button_Clicked(object sender, EventArgs e)
{
    await CrossMedia.Current.Initialize();
    if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
    {
        await DisplayAlert("No Camera", ":( No camera available.", "OK");
        return;
    }

    var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
    {
        SaveToAlbum = true,
        Name = jobnoentry.Text + "-" + Applicationletterentry + "-" + signnoentry.Text + "-" + SignType,

    });


    if (file == null)
        return;

    MainImage.Source = ImageSource.FromStream(() =>
    {
        var stream = file.GetStream();
        return stream;
    });


    //Save text field 

    string fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "temp.txt");
    File.WriteAllText(fileName, "Hello World");


}

1 Ответ

0 голосов
/ 06 ноября 2018

Во-первых, где именно файл будет сохранен, зависит от платформы, но вы всегда можете напечатать строку для имени файла, чтобы увидеть фактический путь, например,

string fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "temp.txt");
Console.WriteLine(filename); // will write the actual path to the application output.

В любом случае используемый вами путь, Environment.SpecialFolder.LocalApplicationData, сохранит текстовый файл в месте, доступном только для самого приложения, вы не увидите его в файловом браузере. Если вам нужно, чтобы текстовые файлы были доступны за пределами вашего приложения, то как это сделать, будет зависеть от платформы, и вам потребуется использовать службу зависимостей для получения правильных путей к файлам.

Однако вы можете проверить, сохранены ли вы и можете ли вы прочитать файл следующим образом:

string fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "temp.txt");
File.WriteAllText(fileName, "Hello World");

Выше приведен код из вашего поста. Если вы не получите исключение, скорее всего, это сработало. Для проверки:

var text = File.ReadAllText(filename);
if (text == "Hello World")
    Console.WriteLine("File contents verified and correct");
else
    Console.WriteLine("File contents do not match saved string");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...