如何解决Xamarin Forms Android - 保存到文件
使用 Xamarin.Forms,自 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
工具。请检查链接中的方式。
How to write the username in a local txt file when login success and check on file for next login?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。