如何将变量分配给位于同一项目的变量,例如在我的项目中我创建了一个名为App_Data的文件夹,例如文件是file.dat,如何在变量中分配文件,例如:
var file = App_Data/file.dat
我需要将它分配给变量,因为我将使用该变量作为方法的参数,...它曾经是:
var file= HttpContext.Current.Request.MapPath("/App_Data/file.dat");
但现在我希望路径位于同一个项目
如果它应该是绝对路径,它也应该没问题
答案 0 :(得分:3)
MapPath
应该为您提供磁盘上文件的绝对位置,从相对网址到您网站的根目录:
var absoluteFileLocation = HostingEnvironment.MapPath("~/App_Data/file.dat");
这应该返回类似:
c:\inetpub\wwwroot\MyWebSite\App_Data\file.dat
更新:
看起来您正在尝试检索文件的内容,而不是位置。以下是如何做到这一点:
var absoluteFileLocation = HostingEnvironment.MapPath("~/App_Data/file.dat");
string fileContents = System.IO.File.ReadAllText(absoluteFileLocation);
答案 1 :(得分:0)
您需要使用一种可用的方法(Streams,Readers等)来读取文件。
最简单的是:
string fileContent = File.ReadAllText(fileNameAndPath);
其中变量fileNameAndPath
包含文件的完整路径和文件名,如Darin Dimitrov所述。
答案 2 :(得分:0)
无论如何,你的意图并不完全清楚:
如果你想要文件统计信息:
System.IO.File file = new System.IO.File("~/App_Data/file.dat");
如果您想使用文件内容:
public static string readFileContent(String filename)
{
try
{
using (System.IO.StreamReader sr = new System.IO.StreamReader(filename))
return sr.ReadToEnd();
}
catch { return String.Empty; }
}