質問

私は単にWebサーバのディレクトリのルートにあるファイルにTextBoxコントロールの内容を書きたい...どのように私はそれを指定するのですか?

心の中で

ベア、私はときに、Webサーバのルートがあると仮定した場合である(それは私のプログラムファイルへのファイルの書き込みを続けて...ローカルでこれをテストする\ Visual Studioの\共通\ IDEディレクトリではなく、私のプロジェクトのディレクトリにしています)オフ発射します。

私の問題は私のweb.configファイル内の適切な場所を指定するとは何かを持っていますか?私はそれを試していないし、まだ行く...

おかげでずっと...

protected void TestSubmit_ServerClick(object sender, EventArgs e)
    {
        StreamWriter _testData = new StreamWriter("data.txt", true);
        _testData.WriteLine(TextBox1.Text); // Write the file.
        _testData.Close(); // Close the instance of StreamWriter.
        _testData.Dispose(); // Dispose from memory.       
    }
役に立ちましたか?

解決

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の仮想パスをとり、絶対いずれかを返します。 「〜」アプリケーションのルートに解決するために使用されます。

他のヒント

ファイルの一般的な操作のためのWriteAllTextクラスのFileのような方法があります。

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

File.WriteAllText(Server.MapPath("~/data.txt"), TextBox1.Text);
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
    }
}

あなたはまた、あなたのウェブサーバーにアップロードいったんフォルダのIUSRアカウントの書き込みアクセス権を与える必要があります覚えておいてください。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top