Каков наилучший способ чтения в текстовом файле с сервера в asp.net-mvc

В одном из моих действий с контроллером мне нужно прочитать в текстовом файле, который содержит кучу ссылочных данных. Прямо сейчас я просто помещаю его в каталог "/Content".

Мои вопросы:

  • Является ли это "правильным" местом для размещения этого файла или я должен поместить его в другой каталог?
  • Каков наилучший способ чтения в текстовом файле в asp.net-mvc, который сидит на сервере?

Ответ 1

Если файл не должен быть напрямую доступен по URL-адресу, вы должны поместить его в App_Data.

Для его чтения просто используйте:

var fileContents = System.IO.File.ReadAllText(Server.MapPath(@"~/App_Data/file.txt"));

Ответ 2

Хорошо, так он работает для меня (VS2017)

  • Задайте действие сборки файла file.txt для содержимого
  • Убедитесь, что для параметра "Копировать в выходной каталог" не установлено значение "Не копировать"
  • Используйте HostingEnvironment.MapPath(@"~/App_Data/file.txt") (спасибо комментарию Hong)

    var fileContents = 
        System.IO.File.ReadAllText(HostingEnvironment.MapPath(@"~/App_Data/file.txt"));