C# 获取自身的文件信息?

C# 获取自身的文件信息?,c#,.net,fileinfo,C#,.net,Fileinfo,我的C#程序是一个.exe文件。因此,用户可以将其存储在任何地方,并将其命名为任何名称。如果我不知道路径,如何使用FileInfo类获取其属性 System.Reflection.Assembly.GetExecutingAssembly().Location PS:这将返回可执行文件的路径,即使在解决方案的一个项目(DLL)中调用了此代码,但请注意,如果在VS调试器中运行,它将返回ApplicationExeName.vshost.exe,因此在这种情况下,您可能会找到Niko Draško

我的C#程序是一个.exe文件。因此,用户可以将其存储在任何地方,并将其命名为任何名称。如果我不知道路径,如何使用FileInfo类获取其属性

System.Reflection.Assembly.GetExecutingAssembly().Location

PS:这将返回可执行文件的路径,即使在解决方案的一个项目(DLL)中调用了此代码,但请注意,如果在VS调试器中运行,它将返回
ApplicationExeName.vshost.exe
,因此在这种情况下,您可能会找到Niko Drašković更有用的解决方案(
System.Reflection.Assembly.getExecutionGassembly().Location

您可以使用

Environment.CurrentDirectory
更多

以及使用

System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

我想!

如果将它放在应用程序的类库中,它将返回DLL的路径:
获取包含当前正在执行的代码的程序集
他指定他的程序是以单个.exe文件的形式存在的,因此它将返回该.exe文件的URI字符串,但我同意-您的解决方案更通用,并且E在better+1之前你是对的,我忽略了这一点。很抱歉。在这种情况下,我会说你的解决方案更好,因为更轻量级+如果我从VS debugger运行应用程序,我的解决方案将返回
app.vshost.exe
和你更正确的-
app.exe
Niko,@sll:这是一个令人尊敬的讨论,这使得SE成为最好的社区在网上。谢谢你的帮助!:)
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName