TextBoxコントロールのコンテンツをWebサーバーディレクトリのルートにあるファイルに書き込むだけです...どのように指定しますか?
これをローカルでテストしていることに注意してください...プロジェクトディレクトリではなく、プログラムファイル\ visual studio\Common\IDEディレクトリにファイルを書き込み続けます(これは、Webサーバーの起動時にルートであると想定される場所です) 。
私の問題は、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(); //メモリから破棄します。 }
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
などのメソッドがあります。
MapPath
メソッドを使用して、Webアプリケーション内のファイルの物理パスを取得します。
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
}
}
Webサーバーにアップロードしたら、IUSRアカウントにフォルダーへの書き込みアクセス権を付与する必要があることに注意してください。
個人的には、正当な理由がない限り、ルートフォルダへの書き込みアクセスを許可しないことをお勧めします。そして、不注意に誰かが自分のASPXページを作成することを許可しないように、保存できるファイルの種類に注意する必要があります。