如何修复Xamarin.form System.IO.FileNotFoundException:无法找到文件

本文关键字:文件 FileNotFoundException Xamarin 何修复 form System IO | 更新日期: 2023-09-27 18:01:27

我使用xamrin。表单,我试图访问文件并读取它。

我有lastusername.txt作为文本文件,我将它的构建操作设置为"内容",实际上我正试图读取文件如下:

  var filename = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "lastusername.txt");
    if (filename != null)
           return System.IO.File.ReadAllText(filename);//error occurred here 
    else
           return "";

我得到以下错误:

先。FileNotFoundException:无法找到文件

如何修复Xamarin.form System.IO.FileNotFoundException:无法找到文件

将你的文件放在Android Assets文件夹中,并为其分配一个构建类型为"AndroidAsset"

因为你的应用程序的资产是只读的,你可以通过AssetManager读取它,保存(复制)它在其他地方,如果它不存在(即应用程序第一次运行):

var fileName = "MyAssetBasedFile.txt";
if (!File.Exists(Path.Combine(CacheDir.Path, fileName)))
{
    AssetManager assets = this.Assets;
    using (StreamReader sr = new StreamReader(assets.Open(fileName)))
    using (StreamWriter sw = new StreamWriter(Path.Combine(CacheDir.Path, fileName), append: false))
        sw.Write(sr.ReadToEnd());
}
string content;
using (StreamReader sr = new StreamReader(Path.Combine(CacheDir.Path, fileName)))
{
    content = sr.ReadToEnd();
}
Log.Debug("SO", content);

下次应用运行时,你会选择缓存目录中的那个