首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin表单Android - Save to file

Xamarin表单Android - Save to file
EN

Stack Overflow用户
提问于 2021-03-11 21:01:54
回答 1查看 433关注 0票数 0

使用Xamarin.Forms,从Android8.0开始,写文件的方式改变了吗?

我更新了我现有的一个项目,其中包括一个非常简单的函数,可以将文本文件写入本地存储,但是在运行应用程序并测试写到文件部分之后,它就会冻结并崩溃。控制台中没有错误,甚至没有它做任何事情的证据。

我的职责是:

代码语言:javascript
复制
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");
        }
        
        
    }

我不明白为什么这不应该起作用。有人知道为什么不这样做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-12 02:36:22

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

代码语言:javascript
复制
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);
        }

您可以从文件中读取文本以进行检查。

代码语言:javascript
复制
 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是内部存储。

在内部存储中,在没有根权限的情况下无法看到这些文件。如果您想查看它,可以使用adb工具。请检查链接中的方式。

How to write the username in a local txt file when login success and check on file for next login?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66590499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档