Den*_*ail 43 .net vb.net visual-studio
我如何获得当前组件的路径?我需要从某些路径获取相对于当前程序集(.dll)位置的数据.
我以为有人告诉我使用反射命名空间,但我找不到任何东西.
Ree*_*sey 77
您可以使用:
string path = (new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath;
Run Code Online (Sandbox Code Playgroud)
注释中的一些建议是通过System.Uri.UnescapeDataString
(来自vvnurmi)来确保处理任何百分比编码,并使用Path.GetFullpath
(来自TrueWill)以确保路径采用标准Windows格式(而不是使用斜杠而不是反斜杠) .以下是您在每个阶段获得的内容的示例:
string s = Assembly.GetExecutingAssembly().CodeBase;
Console.WriteLine("CodeBase: [" + s + "]");
s = (new Uri(s)).AbsolutePath;
Console.WriteLine("AbsolutePath: [" + s + "]");
s = Uri.UnescapeDataString(s);
Console.WriteLine("Unescaped: [" + s + "]");
s = Path.GetFullPath(s);
Console.WriteLine("FullPath: [" + s + "]");
Run Code Online (Sandbox Code Playgroud)
如果我们正在运行输出C:\Temp\Temp App\bin\Debug\TempApp.EXE
:
CodeBase: [file:///C:/Temp/Temp App/bin/Debug/TempApp.EXE] AbsolutePath: [C:/Temp/Temp%20App/bin/Debug/TempApp.EXE] Unescaped: [C:/Temp/Temp App/bin/Debug/TempApp.EXE] FullPath: [C:\Temp\Temp App\bin\Debug\TempApp.EXE]
归档时间: |
|
查看次数: |
58310 次 |
最近记录: |