web-dev-qa-db-ja.com

asp.net-mvcのサーバーからテキストファイルを読み取る最良の方法は何ですか

コントローラーアクションの1つで、一連の参照データを含むテキストファイルを読み取る必要があります。今は、単に「/ Content」ディレクトリに配置します。

私の質問は:

  1. これは、このファイルを置く「正しい」場所ですか、それとも別のディレクトリに置くべきですか?
  2. サーバー上にあるasp.net-mvcのテキストファイルを読み取る最良の方法は何ですか?
53
leora

ファイルをURL経由で直接利用できないようにする場合は、App_Dataに配置する必要があります。

それを読むために、単に使用してください:

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

この方法でうまくいく(VS2017)

  1. File.txtのビルドアクションをContentに設定します
  2. 出力ディレクトリへのコピーがnot「コピーしない」に設定されているかどうかを確認します
  3. HostingEnvironment.MapPath(@"~/App_Data/file.txt")を使用します(Hongコメントのおかげ)

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