我们经常有遇到要处理文件路径的需求,那么一般我们常见的有几种:
程序下面的文件
临时目录下的文件
首先我们创建了实例解决方案:

其中调用链是:Main.Shell->FooALibrary->,首先我们将FooAFolder.txt和FooA.txt的文件属性设置生成操作为内容,复制到输出目录为始终复制
那么我们有什么方法获取这两个文件的路径,我们可能会用到以下方法:
主要用到的两种方式就是:
获取应用程序域的基目录:<code>AppDomain.CurrentDomain.BaseDirectory</code>
获取当前工作目录的完全限定路径:<code>System.Environment.CurrentDirectory</code>
但是实际上以上两种方式不是最准和最稳的,还有一种最稳的方式:
获取当前执行程序集的方式:<code>Assembly.GetExecutingAssembly().Location</code>(推荐方式)
我们还能再拓展一下,我们在<code>FooA</code>和<code>FooB</code>添加如下代码:
输出:
我们从上面可以知道以下两种的用法:
获取入口程序集路径:<code>Assembly.GetEntryAssembly().Location</code>,<code>FooALibrary</code>和<code>FooBLibrary</code>的入口都是<code>Main.Shell</code>
获取调用该程序集的程序集路径:<code>Assembly.GetCallingAssembly().Location</code>,当 <code>Main.Shell</code>调<code>FooBLibrary</code>,输出<code>Main.Shell</code>,<code>FooALibrary</code>调<code>FooBLibrary</code>,输出<code>FooALibrary</code>
因此,用程序集Assembly的一些路径Api是非常灵活且准确的
我们也经常会遇到需要获取临时目录路径的方式来放置一些程序临时文件,可以用下面方式获取: