C# 在c windows应用程序中获取应用程序路径

C# 在c windows应用程序中获取应用程序路径,c#,winforms,path,C#,Winforms,Path,假设我有以下场景。我的申请书居住在 D:\MyWinForm\ 我有 D:\MyWinForm\DAL D:\MyWinForm\BLL D:\MyWinForm\Program.cs D:\MyWinForm\Form1.cs D:\MyWinForm\App.config D:\MyWinForm\ErrorLog\ErrorLog.txt 在DAL文件夹D:\MyWinForm\DAL中,我有一个DAL.cs文件 D:\MyWinForm\DAL\DAL.cs 在这个文件中,我有一个需要返

假设我有以下场景。我的申请书居住在

D:\MyWinForm\

我有

D:\MyWinForm\DAL

D:\MyWinForm\BLL

D:\MyWinForm\Program.cs

D:\MyWinForm\Form1.cs

D:\MyWinForm\App.config

D:\MyWinForm\ErrorLog\ErrorLog.txt

在DAL文件夹D:\MyWinForm\DAL中,我有一个DAL.cs文件

D:\MyWinForm\DAL\DAL.cs

在这个文件中,我有一个需要返回的函数

D:\MyWinForm\ErrorLog\ErrorLog.txt将此路径作为字符串

我在这里讨论了很多问题。但找不到合适的答案

编辑:

将日志路径存储在app.config文件中是常见且良好的做法。然后,您就可以消除日志路径相对于应用程序路径的问题。例如:

<?xml version="1.0" encoding="utf-8" ?>   
<configuration>    
  <appSettings>
    <add key="LogPath" value="C:\Logs"/>
  </appSettings>   
</configuration>
现在您有了一个集中的地方来存储日志

此外,我建议调查一下。它是一个流行的.NET日志框架


你的大部分问题都是无关的,因为你不应该关心实际的CSF文件,它在编译时并不重要,看起来你可以这样做

Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"ErrorLog","ErrorLog.txt");

但是,由于并非每个人都可以访问程序的目录,您可能希望使用应用程序数据文件夹进行查看

您是否尝试了一些方法。GetFullPath@.\ErrorLog\ErrorLog.txt?如果程序集位于D:\MyWinForm,它将返回D:\MyWinForm\ErrorLog\ErrorLog.txt。如果应用程序从D:\移动到C:\,该怎么办?没有理由不能在这里使用相对路径。我在这个文件中回答了他的问题。我有一个函数需要将D:\MyWinForm\ErrorLog\ErrorLog.txt这个路径作为字符串返回。@SamLeach不生气,但您是否也可以编写公共字符串GetUserName{return Sam;}作为对如何获取应用程序当前用户名的问题的回答@SamLeach标题要求获取应用程序路径,OP列出了它们的整个文件夹结构,因此它们似乎要求的是相对路径,而不仅仅是返回字符串。如果您进行编辑,我将删除-1,因为您已经更新了答案。由于时间限制,无法删除它expired@Nisha使用路径.GETFultPuth\\\\ErrordLog\ErrOrLog.txt,这将完成工作,但是您应该考虑如何组织日志文件。双点。。在路径中意味着,您向上移动一个文件夹。两个双点表示您将进入两个文件夹bin\Debug。如Sayse所述,您还可以使用Path.GetFullPath@\…\ErrorLog\ErrorLog.txt。顺便说一下,谢谢你,我不知道。
private string GetErrorLogPath()
{
    return Path.GetFullPath(@".\ErrorLog\ErrorLog.txt")
}
Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"ErrorLog","ErrorLog.txt");