C# 读取指定路径文件

C# 读取指定路径文件,第1张

  C#读取文羡吵咐件路径

  //获取包含清单的已加载文件的路径或 UNC 位置。

public static string

sApplicationPath = Assembly.GetExecutingAssembly ( ).Location

//result: X:\xxx\xxx\xxx.dll (.dll文件所在的目录+.dll文件名)

//获取当前进程的完整路径,包含文件名(进程名)。

string str = this.GetType ( ).Assembly.Location

//result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取新的 Process 组件并将其与当前活动的进程关碰历联的主模块的完整路径,包含文件名(进程名)。

string str = System.Diagnostics.Process.GetCurrentProcess (

).MainModule.FileName

//result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。

string str = System.Environment.CurrentDirectory

//result: X:\xxx\xxx (.exe文件所在的目录)

//获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。

string str = System.AppDomain.CurrentDomain.BaseDirectory

//result: X:\xxx\xxx\ (.exe文件所在的目录+"\")

//获取和设置包含该应用程序的目录的名称。

string str =

System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase

//result: X:\xxx\xxx\ (.exe文件所在的目录+"\")

//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。

string str = System.Windows.Forms.Application.StartupPath

//result: X:\xxx\xxx (.exe文件所在的目录)

//获兄纯取启动了应用程序的可执行文件的路径,包括可执行文件的名称。

string str = System.Windows.Forms.Application.ExecutablePath

//result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取应用程序的当前工作目录(不可靠)。

string str = System.IO.Directory.GetCurrentDirectory ( )

//result: X:\xxx\xxx (.exe文件所在的目录)

在系统服务中最好用这个方式去取路径

string stmp = Assembly.GetExecutingAssembly ( ).Location

stmp = stmp.Substring ( 0 , stmp.LastIndexOf ( '\\' )

)//删除文件名

if ( pathType == 1 )

return stmp + @"\inputLog.xml"

else if ( pathType == 2 )

return stmp + @"\MiddleDB.xml"

else

return stmp + @"\AppNo.xml"

using System.IO

string path = "d:asdfasdf.bmp"

string fileName = Path.GetFileName(path)//文件名

string ext = Path.GetExtension(path)//扩展名

公共程序集

1.利用反射Assembly.LoadFrom() 动态加载程序集

static void Main()

{

// Load the assembly and create an Instance of MyAssembly.

Assembly aa = Assembly.LoadFrom("MyAssembly\\MyAssembly.dll")

Type a_t = aa.GetType("MyAssembly")

object o = Activator.CreateInstance(a_t)

// Invoke the GetDepAssembly method.

object ac = o.GetType().InvokeMember("GetDepAssembly", BindingFlags.InvokeMethod, null, o, new object[] {})

}

2.使用 <codeBase>元素。

只有在计算机配置文件或也重定向程序集版本的发行者策略文件中,才可以使用 <codeBase>元素。在运行库确定要使用哪一程序集版本时,它应用确定版本的文件中的基本代码设置。如果未指出基本代码,此帆那么运行库就以通常的方法探测程序集。有关详细信息,请参见运行库如何定位程序集。禅弯

<configuration>

<runtime>

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

<dependentAssembly>

<assemblyIdentity name="myAssembly"//必需!程序集的名称

publicKeyToken="32ab4ba45e0a69a1" //sn -t FileNameKeyPublic.snk 得到该值

culture="en-us" />//可选,指定程序集的语言和国家/地区的字符串。一般是neutral

<codeBase version="2.0.0.0"//程序集版本AssemblyInfo.cs中配置,或在属性中配置。

href="http://www.litwareinc.com/myAssembly.dll"/>//程序集地址。

</dependentAssembly>

</assemblyBinding>

</runtime>

</configuration>

对于所有具有强名称的程序集,要求 version 属性,但对于不具有强名称的程序集应省略。<codeBase>元素要求 href 属性。在 <codeBase>元素中不能指定版本范围。

注意

如果为不具有强名称的程序集提供基本代码提示,那么该提示必须指向应用程序基或该应用程序基目录的子目录。

3.使用 <probing>元素。

运行库通过探测的方法来查找没有基本代码的程序集。有关探测的更多信息,请参见运行库如何定位程序集。

可以在应用程序配置文件中使用 <probing>元素,来指定在查找程序集时运行库应搜索的贺扒闷子目录。下面的示例说明如何指定运行库应搜索的目录。

<configuration>

<runtime>

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

<probing privatePath="binbin2\subbinbin3"/>

</assemblyBinding>

</runtime>

</configuration>

privatePath 属性包含运行库应在其中搜索程序集的目录。如果应用程序位于 C:\Program Files\MyApp,那么运行库将在 C:\Program Files\MyApp\Bin、C:\Program Files\MyApp\Bin2\Subbin 和 C:\Program Files\MyApp\Bin3 中查找未指定基本代码的程序集。privatePath 中指定的目录必须是应用程序基目录的子目录。

相对下 <probing>没有<codeBase>灵活

4.还可以使用 .NET Framework 配置工具 (Mscorcfg.msc) 来指定程序集位置或者为公共语言运行库指定要探测程序集的位置。

如大滑果你看的是张帆的教程的话,这个位置是要设置 TriangleEntityDB 工程属性的 C/C++常芹仿乎嫌悉规,解析#using引用,路径添加: C:\ObjectARX 2008\inc 这个位置


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12472228.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存