2

相対パスを使用してTXTファイルにデータを書き込むasp.net Webサイトがあります。これは、次のコマンドで行います。

string currentDirectory = "./";
string individualDeviceTxt = "myfile.txt";    

System.IO.StreamWriter fileW3 = new System.IO.StreamWriter(currentDirectory + individualDeviceTxt);

ファイルは次のパスに正常に書き込まれます。

C:\Program Files (x86)\Common Files\microsoft shared\DevServer\10.0

ただし、後でこのファイルをユーザーに送信しようとすると、相対ディレクトリ ./ が別のパスを指しています。コードは次のとおりです。

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.AddHeader("Content-Disposition", "attachment; filename=" + currentDirectory + individualDeviceTxt + ";");
response.TransmitFile(currentDirectory + individualDeviceTxt);
response.End();

ファイル FROM 'C:\Users\user\documents\visual studio 2010\Projects\myproject\myfile.txt を送信しようとしていますが、これは正しくありません (存在しません)。

したがって、"./" が 2 番目のコード スニペットの別のフォルダーを指していることは明らかですが、最初のコード スニペットで使用されているのと同じ "./" を指している必要があります。これを実現するにはどうすればよいですか? 両方の場所で myfile.txt のディレクトリとして ./ を引き続き使用したいと思います。

4

2 に答える 2

0

You should consider using Server.MapPath to create absolute system paths that should be correct in all contexts (assuming the same app).

于 2012-12-07T01:10:52.387 に答える