有没有办法在我的asp.net应用程序中的类中使用Server.MapPath

时间:2012-03-29 13:22:24

标签: c#

我的应用程序根目录下有一个log.txt文件。我希望能够让我的日志类能够访问此文件并写入它。但我不知道如何在我的代码中告诉它文件的正确路径。谢谢你的帮助

using (StreamWriter w = File.AppendText("log.txt"))
    {
         Log(e.ToString(),w);
         w.Close();
    }

2 个答案:

答案 0 :(得分:14)

使用

Server.MapPath("~/log.txt")

获取完整的文件名。

<强>更新

如果您不在ASP页面内,而是在常规课程中,请尝试:

System.Web.HttpContext.Current.Server.MapPath("~/log.txt")

更新2: 看起来您正在尝试制作自己的日志记录解决方案。您可以考虑使用现有的解决方案,例如NLogLog4Net

答案 1 :(得分:1)

通常你会从Web.config获得那条路径 它将是一个物理文件路径,而不是相对URL路径。不需要MapPath。

最简单的方法:使用“设置”设计器工具创建它并将其读作

 string fname = Properties.Settings.Default.LogFile;