0

ログファイル(txtファイル)を読み込み、これをtxtファイルで表示し、txt形式で保存したい。これは私のコードで、読み取りコンテンツをtxtファイルで表示およびダウンロードするために正常に動作しています..

public FileResult Download(string id)
    {
        int rowId = Convert.ToInt32(id);
        LoadFileInfoCache();
        var fileDetails = from ff in _currentFileDetails
                          where ff.FileId == rowId
                          select new
                          {
                              name = ff.FileName,
                              location = ff.FileLocation
                          };
        var fileDetailsList = fileDetails.ToList();
        string fileLocation = fileDetailsList[0].location;
        string fileName = fileDetailsList[0].name;            
        string contentType = "application/txt";
        var file = System.IO.File.Open(fileLocation, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
        var stream = (Stream)(file);
        return File(stream, contentType, fileName);
    }

保存ボタンをクリックすると、保存ウィンドウで拡張子付きのファイル名が必要ですが、ファイル名のみが表示されます。また、テキストファイルでは、ヘッダー名は filename.txt である必要がありますが、私のコードでは Filename[1] と表示されます。ヘッダーに extn を含むファイル名を表示し、ウィンドウとして保存するアイデアを誰か教えてください。

4

1 に答える 1

1

更新されたコード

public FileResult FileOutput()
            {
                string filename = "alokdida.txt";
                string filepath = "C:\\logs\\Structured_Exception_Log.txt";

                return File(filepath, "application/octet-stream", filename);
            }

これはうまくいくはずです。

2 回目の編集 (太字の変更されたコードを参照)

public FileResult Download(string id)
    {
        int rowId = Convert.ToInt32(id);
        LoadFileInfoCache();
        var fileDetails = from ff in _currentFileDetails
                          where ff.FileId == rowId
                          select new
                          {
                              name = ff.FileName,
                              location = ff.FileLocation
                          };
        var fileDetailsList = fileDetails.ToList();
        string fileLocation = fileDetailsList[0].location;
        string fileName = fileDetailsList[0].name+".txt"; // Here you need to append the .txt
        string contentType = "application/txt";
        var file = System.IO.File.Open(fileLocation, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
        var stream = (Stream)(file);
        return File(stream, contentType, fileName);
    }
于 2012-07-02T11:23:24.627 に答える