47

TextBoxコントロールの内容をWebサーバーディレクトリのルートにあるファイルに書き込みたいだけです...どのように指定しますか?

これをローカルでテストしていることを覚えておいてください...プロジェクトディレクトリ(Webサーバーが起動したときにrootと見なされる場所)ではなく、プログラムfiles \ visual studio \ Common \ IDEディレクトリにファイルを書き込み続けます) 。

私の問題は、web.configで正しい場所を指定することと関係がありますか?私はそれを試しましたが、それでも行きません...

どうもありがとう...

protected void TestSubmit_ServerClick(object sender、EventArgs e)
    {{
        StreamWriter _testData = new StreamWriter( "data.txt"、true);
        _testData.WriteLine(TextBox1.Text); //ファイルを書き込みます。
        _testData.Close(); //StreamWriterのインスタンスを閉じます。
        _testData.Dispose(); //メモリから破棄します。       
    }
4

4 に答える 4

80
protected void TestSubmit_ServerClick(object sender, EventArgs e)
{
  using (StreamWriter _testData = new StreamWriter(Server.MapPath("~/data.txt"), true))
 {
  _testData.WriteLine(TextBox1.Text); // Write the file.
 }         
}

Server.MapPathは仮想パスを取り、絶対パスを返します。「〜」は、アプリケーションルートに解決するために使用されます。

于 2009-08-12T21:18:11.157 に答える
35

WriteAllTextクラスには、ファイルに対する一般的な操作のようなメソッドがありFileます。

このメソッドを使用してMapPath、Webアプリケーション内のファイルの物理パスを取得します。

File.WriteAllText(Server.MapPath("~/data.txt"), TextBox1.Text);
于 2009-08-12T21:43:04.600 に答える
17
protected void TestSubmit_ServerClick(object sender, EventArgs e)
{
    using (StreamWriter w = new StreamWriter(Server.MapPath("~/data.txt"), true))
    {
        w.WriteLine(TextBox1.Text); // Write the text
    }
}
于 2009-08-12T21:18:38.893 に答える
8

Webサーバーにアップロードしたら、IUSRアカウントにフォルダへの書き込みアクセス権も付与する必要があることに注意してください。

個人的には、正当な理由がない限り、ルートフォルダへの書き込みアクセスを許可しないことをお勧めします。次に、保存できるファイルの種類に注意して、誰かが自分のASPXページを誤って作成できないようにする必要があります。

于 2009-08-12T21:28:53.477 に答える