Escrevendo arquivo para servidor web – ASP.NET

Eu simplesmente quero escrever o conteúdo de um controle TextBox para um arquivo na raiz do diretório do servidor web … como especificá-lo?

Tenha em mente, estou testando isso localmente … ele continua gravando o arquivo no diretório \ common \ IDE do meu arquivo de programas em vez do diretório do meu projeto (que é onde eu acredito que o root é quando o servidor web é desligado) .

O meu problema tem algo a ver com a especificação da localização correta no meu web.config? Eu tentei isso e ainda não vou …

Muito obrigado …

 protected void TestSubmit_ServerClick (remetente do object, EventArgs e)
     {
         StreamWriter _testData = new StreamWriter ("data.txt", true);
         _testData.WriteLine (TextBox1.Text);  // Escreve o arquivo.
         _testData.Close ();  // Feche a instância do StreamWriter.
         _testData.Dispose ();  // Descarte da 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. } } 

O Server.MapPath usa um caminho virtual e retorna um caminho absoluto. “~” é usado para resolver a raiz do aplicativo.

Existem methods como WriteAllText na class File para operações comuns em arquivos.

Use o método MapPath para obter o caminho físico de um arquivo em seu aplicativo da 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 } } 

Lembre-se de que você também terá que conceder à conta IUSR access de gravação para a pasta depois de fazer o upload para o servidor da web.

Pessoalmente, eu recomendo não permitir access de gravação à pasta raiz, a menos que você tenha uma boa razão para fazê-lo. E então você precisa ter cuidado com o tipo de arquivos que você permite que sejam salvos, assim você não permite inadvertidamente que alguém escreva suas próprias páginas ASPX.