1

Visual Studio Express 2012 を使用して ASP.NET で Web フォームを設計しようとしています。

some からデータを取得しtext boxes、それを a に書き込む必要がありText fileます。

これは非常に単純なプログラムですが、ファイル パスの設定に問題があります

このアプリケーションは他の人に送信され、その人は自分のコンピューターからプロジェクトを実行する必要があります。

必要なファイルが呼び出さDatabase.txtれ、D:\Project\bin\Database.txt.

したがって、このフォルダをデスクトップに貼り付けると、 になりC:\Users\Desktop\Project\bin\Database.txtます。

プロジェクト フォルダーの場所に関係なく、このファイルを見つけることができる動的パスを設定するのに問題があります。

4

3 に答える 3

2

次のコードを使用します。

public void WriteToFile(String text)
{
    string logFileName = Server.MapPath("~/bin/DataBase.txt");
    using (StreamWriter writer = File.AppendText(logFileName))
    {
        writer.WriteLine(text);
        writer.Flush();
        writer.Close();
    }
}
于 2013-04-06T10:26:38.290 に答える
1

Server.MapPath("/") を使用して、仮想ディレクトリの物理パスを取得します

これを参照してください。server.mappath の投稿 Server.MapPath(".")、Server.MapPath("~")、Server.MapPath(@"\")、Server.MapPath("/")。違いはなんですか?

于 2013-04-06T10:38:21.923 に答える
0

できることは、パスをweb.configファイルに入れ、要件に従って値を設定することです。

これはあなたを助けるはずのサンプルコードです

これは web.config に入ります。

<configuration>
    <appSettings>
        <add key="myFilePath" value="C:\\whatever\\Data\\"/>
    </appSettings>
</configuration>

そして、これはあなたがそれを読む方法です:

path = System.Web.Configuration.WebConfigurationManager.AppSettings["myFilePath"].ToString();
于 2013-04-06T10:23:47.327 に答える