我是Xamarin的新手。我有一个简单的应用程序;我在具有注释字段并拍照功能的地方。我正在使用媒体插件拍照。图片显然已保存在手机库中。 但我也想保存文本文件,其中包含电话中“便笺”字段的输入。
我正在努力保存文本文件。
是产品结构。我正在使用共享项目。
File structure and classes 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");
}
答案 0 :(得分: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");