Xamarin Forms Android -保存到文件



使用Xamarin。表单,写入文件的方式自Android 8.0改变了吗?

我更新了我的一个现有项目,其中包括一个非常简单的功能,将文本文件写入本地存储,但在运行应用程序并测试写入文件部分后,它只是冻结并崩溃。控制台没有错误,甚至没有任何迹象表明它在做任何事情。

我的功能如下:

public void Submit_Clicked(object sender, EventArgs e)
{

{
string text = NameEntry.Text;
string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
string filename = Path.Combine(path, "DeviceProfile.txt");                
File.WriteAllText(filename, text);                

}
catch(Exception ex)
{
DisplayAlert("Error:", ex.Message.ToString(), "Ok");
}


}

我不明白为什么这不能工作。有人知道为什么这不会发生吗?

正如Jason所说,下面的代码和您提供的代码都可以将文本文件写入本地存储。

string text = NameEntry.Text;
var path = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "DeviceProfile.txt");
using (var writer = File.CreateText(backingFile))
{
await writer.WriteLineAsync(text);
}

你可以从文件中读取文本来检查。

public async Task<string> ReadCountAsync()
{
var backingFile = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "DeviceProfile.txt");
if (backingFile == null || !File.Exists(backingFile))
{
return null;
}
var text = string.Empty;
using (var reader = new StreamReader(backingFile, true))
{
var str = await reader.ReadToEndAsync();

text = str;
}
return text;
}   

保存文件的Environment.SpecialFolder.Personal路径为内部存储。

在内部存储中,没有root权限不能查看文件。如果你想查看它,你可以使用adb工具。

如何将用户名写入本地txt文件时,登录成功,并检查文件为下次登录?

最新更新