3

この質問は StackOverFlow で以前に尋ねられており、回答もその投稿でマークされています。しかし悲しいことに 、不明な場所からファイルを読み取るで提供されている解決策は? 私の問題を解決しません。
Web サイトを構築していて、テキスト ファイルからデータを読み取る必要があります。私のPC内のファイルの実際の場所は次のC:\Developments\TestProject\PettyCashSolution\PettyCashWeb\DataFile.txtとおりです。上記のリンクから以下の解決策を試しましたが、うまくいきませんでした。

string sString = string.Empty;
string sStr = "";
StreamReader oStreamReader;
try
{ 

トライ1

sStr = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "DataFile.txt");

これは以下に戻ります。
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\pettycashweb\af7f0870\c5ac294a\DataFile.txt

トライ2

sStr = Path.Combine(Application.StartupPath, "DataFile.txt");

これは以下を返します:
コンパイル エラー: The name "Application" does not exist in the current context

トライ3

oStreamReader = new StreamReader(File.OpenRead(Directory.GetCurrentDirectory().ToString() + "\\DataFile.txt"));

これは以下を返します:
例外: ファイル 'C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\DataFile.txt' が見つかりませんでした

oStreamReader = new StreamReader(sStr);
sString = oStreamReader.ReadLine();

}
catch (Exception ex)
{
}

また、サーバー (iis) で Web を公開した後、テキスト ファイルから読み取ったデータが正しく機能するようにするには、どうすればよいかアドバイスをお願いします。ありがとう。

4

2 に答える 2

4

アプリケーションパスを取得するにはAppDomain.CurrentDomain.BaseDirectory

あなたのコードは次のようでなければなりません

sStr = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "DataFile.txt");

于 2012-04-10T05:37:10.837 に答える
0

あなたが使用することができます

HttpContext.Current.Request.ApplicationPath

それに従って文字列を追加します。

于 2012-04-10T05:41:38.383 に答える