Чтение файла в C # Консольный проект работает, но не для App Project в Visual Studio - PullRequest
0 голосов
/ 03 сентября 2018

Выполните следующие действия:

  • Новое решение> Другое> .NET> Консольный проект

  • Проект> Добавить файлы> Путь / к / myfile.txt

  • myfile.txt> Действие сборки> EmbeddedResource

  • myfile.txt> Быстрые свойства> Копировать в выходной каталог

Вот как Program.cs выглядит:

namespace Program
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            string text = System.IO.File.ReadAllText("myfile.txt");
        }
    }
}

Сборка без ошибок.

Когда я создаю, например, приложение для Android ( Новое решение> Android> Приложение) , повторяю все те же шаги, что и раньше, и пытаюсь собрать:

namespace Program
{
    [Activity(Label = "Program", MainLauncher = true, Icon = "@mipmap/icon")]
    public class MainActivity : Activity
    {

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            string text = System.IO.File.ReadAllText("myfile.txt");
        }
    }
}

Я получаю ошибку:

Исключение System.IO.FileNotFoundException

Не удалось найти файл "/myfile.txt"

Существуют ли другие шаги, необходимые для того, чтобы текстовый файл был доступен в процессе сборки для проектов кросс-платформенных приложений?

1 Ответ

0 голосов
/ 03 сентября 2018

Android не ведет себя так же, как консольное приложение Windows. Чтобы добиться аналогичной функции в Android, используйте Asset

Добавьте файл в папку «Ресурсы» с действием по сборке Android Asset

// 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 ();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...