【问题标题】:How to save text file using xamarin And where is file get saved如何使用 xamarin 保存文本文件以及文件保存在哪里
【发布时间】:2019-04-09 00:52:36
【问题描述】:

我是 Xamarin 的新手。我有简单的应用程序;我有笔记字段和拍照功能的地方。我正在使用媒体插件拍照。图片显然保存在手机图库中。 但我也想保存包含手机中注释字段输入的文本文件。

我正在努力保存文本文件。

是产品结构。我正在使用共享项目。

File structure and classes image

Sample app image

我有一个保存按钮。我想要做的是单击保存按钮时;保存具有来自注释字段的用户输入的文本文件。

这是我的保存按钮的操作

我在看这个网站 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");


}

【问题讨论】:

  • “没用” - 这是什么意思?您是否遇到异常或错误?您如何尝试验证它是否有效?
  • 我没有收到任何错误消息。我浏览了我的模拟器设备中的所有文件夹以查找文件。不确定实际验证的最佳方法是什么。
  • 使用 File.Exists 或 File.ReadAllText。
  • 我相信 File.ReadAllText(fileName) 会读取文件。我想保存文件。这就是为什么我选择 File.WriteAllText(fileName, text);
  • 是的,这正是它的作用。您在写入文件后读取文件以验证它是否正确写入。

标签: c# visual-studio-2010 xamarin


【解决方案1】:

首先,文件的具体保存位置取决于平台,但您始终可以打印文件名的字符串以查看实际路径,例如

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多