23

How can I read the contents of a text file in my Web Application, using a relative path/URL?

The files are located in a directory at the root of my application.

I don't want to specify the full path to the file I want to access, since my test environment is not an exact mirror of my production environment.

cllpse
  • 21,396
  • 37
  • 131
  • 170

2 Answers2

46

Use Server.MapPath("/path/to/file") and pass the result of that to File.ReadAllText():

String template = File.ReadAllText(Server.MapPath("~/Templates/") + filename);
cllpse
  • 21,396
  • 37
  • 131
  • 170
Klaus Byskov Pedersen
  • 117,245
  • 29
  • 183
  • 222
7

You can use this code snippet as well.

using System.IO;
using System.Web.Hosting;

using (StreamReader sr = new StreamReader(VirtualPathProvider.OpenFile("~/foo.txt")))
{
    string content = sr.ReadToEnd();
}
m3kh
  • 7,881
  • 2
  • 31
  • 37