Чтение и запись файлов в веб-приложении asp.net - PullRequest
3 голосов
/ 17 декабря 2009

Я разработал веб-приложение ASP.NET в Visual Studio 2008.

У меня есть 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 ]

9 голосов
/ 17 декабря 2009

Лучшей ставкой будет Server.MapPath ().

Пример:

Поместите файлы в папку «file» (вы можете создать папку в своем решении, щелкнув правой кнопкой мыши ваше решение и выбрав add folder). затем щелкните правой кнопкой мыши папку .. выберите существующий элемент, а затем выберите файлы ..

Чтобы сделать путь к вашим файлам локальным .. используйте следующую команду:

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

Ваш код изменен

 FileStream file = new FileStream(  Server.MapPath("~\\files\\test.html"), FileMode.Create, FileAccess.Write);
1 голос
/ 17 декабря 2009

Лучше всего добавить файлы в ваше решение.

В обозревателе решений вы можете щелкнуть правой кнопкой мыши и добавить существующий элемент. Измените код для чтения из этого расположения, чтобы при развертывании кода он находился в известном месте и являлся частью развертывания.

...