簡體   English   中英

Xamarin Forms Android - 保存到文件

[英]Xamarin Forms Android - Save to file

使用 Xamarin.Forms,自 Android 8.0 以來寫入文件的方式是否發生了變化?

我更新了我的現有項目,其中包括一個非常簡單的 function 將文本文件寫入本地存儲,但在運行應用程序並測試寫入文件部分后,它只是凍結並崩潰。 控制台中沒有錯誤,甚至沒有證據表明它在做任何事情。

我的 function 是這樣的:

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文件並檢查文件以進行下次登錄?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM