System.IO.FileNotFoundException: Xamarin Forms System.IO.Files продолжает искать во внутренней памяти устройства - PullRequest
0 голосов
/ 29 января 2020

В настоящее время я пытаюсь перенести приложение WPF C# на android и iOS с помощью форм Xamarin. У меня есть файл .txt в папке assets в проекте Xamarin Android, и я пытаюсь прочитать его содержимое, используя:

 string path =Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),filename);
        List<string> FENs = new List<string>();
        string Puzzles;
        Puzzles = File.ReadAllText(path);

, имя файла - "puzzles.txt", то есть TXT я хочу прочитать из папки активов. Тем не менее, я продолжаю получать FileNotFoundException с этим отчетом: «Не удалось найти файл» /data/user/0/com.companyname.stockfish_wins/files/.local/share/puzzles.txt «» решение называется Stockfi sh Победы.

Ответы [ 2 ]

1 голос
/ 29 января 2020

Вы можете использовать Asset Manager https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/resources-in-android/android-assets?tabs=windows#reading -assets

// Read the contents of our asset
string content;
AssetManager assets = this.Assets;
using (StreamReader sr = new StreamReader (assets.Open ("read_asset.txt")))
{
    content = sr.ReadToEnd ();
}
0 голосов
/ 29 января 2020

Я бы предложил использовать Xamarin.Essentials вместо попытки самостоятельно прочитать файл из правильного местоположения https://docs.microsoft.com/en-gb/xamarin/essentials/get-started?tabs=windows%2Candroid

После установки вы можете использовать File Sytem Helper для доступа к файл в активах (Android) или ресурсах (iOS) https://docs.microsoft.com/en-gb/xamarin/essentials/file-system-helpers?context=xamarin%2Fandroid&tabs=android

using (var stream = await FileSystem.OpenAppPackageFileAsync(templateFileName))
{
   using (var reader = new StreamReader(stream))
   {
      var fileContents = await reader.ReadToEndAsync();
   }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...