在asp.net Web应用程序中读取和写入文件

时间:2009-12-17 10:37:28

标签: asp.net file web-applications file-io

我在Visual Studio 2008中开发了一个ASP.NET Web应用程序。

我在应用程序中有一个HTML文档和一个文本文件,但两者都不在我的应用程序中。

两者都在外面,所以当我尝试在另一个系统中运行相同的应用程序时,我收到一个错误,因为我错过了那些文件。

我希望在部署时将文件包含在应用程序中。

以下是我用来读写文件的代码:

//file write test.txt
FileStream file1 = new FileStream("test.txt", FileMode.Create, FileAccess.Write);

// Create a new stream to write to the file
StreamWriter sw1 = new StreamWriter(file1);

// Write a string to the file
sw1.Write(emailId);

// Close StreamWriter
sw1.Close();

// Close file
file1.Close();

// *** Write to file ***

// Specify file, instructions, and privelegdes
FileStream file = new FileStream("test.html", FileMode.Create, FileAccess.Write);

// Create a new stream to write to the file
StreamWriter sw = new StreamWriter(file);

// Write a string to the file
sw.Write(BodyLiteral.Text);

// Close StreamWriter
sw.Close();

// Close file
file.Close();

// *** Read from file ***

// Specify file, instructions, and privelegdes
file = new FileStream("test.txt", FileMode.OpenOrCreate, FileAccess.Read);

// Create a new stream to read from a file
StreamReader sr = new StreamReader(file);

// Read contents of file into a string
string cval = sr.ReadToEnd();
Response.Write(cval);
// Close StreamReader
sr.Close();

// Close file
file.Close();

//html file reading

string text = File.ReadAllText(@"D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\test.html");

我的两个文件都在:D:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \

如何将这两个文件与应用程序一起部署,以便程序可以在另一个系统上运行?

2 个答案:

答案 0 :(得分:9)

你最好的选择是Server.MapPath()。

示例:

将文件放在文件夹“file”中(通过右键单击解决方案并选择添加文件夹,可以在解决方案中创建一个文件夹)。 然后右键单击文件夹。选择现有项目,然后选择您的文件..

要使文件的路径为本地..请使用以下

Server.MapPath("~\\files\\test.html");

您的代码已修改

 FileStream file = new FileStream(  Server.MapPath("~\\files\\test.html"), FileMode.Create, FileAccess.Write);

答案 1 :(得分:1)

最好的办法是将文件添加到您的解决方案中。

在解决方案中,您可以右键单击并添加现有项目。将代码更改为从该位置读取,因此在部署代码时,它将位于已知位置并且是部署的一部分。