我在C#中有一个类,可以在发生异常时将错误消息保存在日志文件中。现在我想将日志文件保存在包含应用程序(在我的例子中是一个网站)文件的同一文件夹中。我尝试使用Environment.CurrentDirectory,但它没有检索我的网站的路径。我该怎么做才能使用指向网站目录内的相对文件路径?
这是类的代码。如您所见,路径是绝对的。我想将其更改为指向我网站目录中文件夹的相对文件路径。
答案 0 :(得分:3)
通常Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
返回当前程序集所在的路径。你可以用
string logName = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "MyLogFile.log");
创建日志文件名。
问题实际上是操作系统是否允许登录应用程序的文件夹。此外,对于Web应用程序,日志文件将公开可见并可通过Web浏览器访问。
答案 1 :(得分:2)
对于网站使用:
HttpContext.Current.Server.MapPath("~/");
答案 2 :(得分:0)
您也可以尝试这个解决方案:
string path = AppDomain.CurrentDomain.BaseDirectory + "anotherFolder";
这会将应用程序的基础目录和项目中的文件夹放在项目中!