web-dev-qa-db-fra.com

Quelle est la meilleure façon de lire un fichier texte à partir du serveur dans asp.net-mvc

Dans l'une de mes actions de contrôleur, j'ai besoin de lire un fichier texte contenant un tas de données de référence. Pour l'instant, je le mets simplement dans le répertoire "/ Content".

Mes questions sont:

  1. Est-ce le "bon" endroit pour mettre ce fichier ou dois-je le placer dans un autre répertoire?
  2. Quelle est la meilleure façon de lire un fichier texte dans asp.net-mvc qui se trouve sur le serveur?
53
leora

Si le fichier ne doit pas être directement disponible via URL, vous devez le placer dans App_Data.

Pour le lire, utilisez simplement:

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

Ok, ça marche pour moi (VS2017)

  1. Définissez l'action de génération du fichier.txt sur Contenu
  2. Vérifiez si Copier dans le répertoire de sortie est pas réglé sur 'Ne pas copier'
  3. Utilisez HostingEnvironment.MapPath(@"~/App_Data/file.txt") (grâce au commentaire de Hong)

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