C#获取当前路径的方法

摘要:
这个不一定是程序从中启动的目录啊,有可能程序放在C:www里,这个函数有可能返回C:DocumentsandSettingsYB\,或者C:ProgramFilesAdobe\,有时不一定返回什么东东,我也搞不懂了。如果是Web应用程序,取得的路径是:C:WINDOWSMicrosoft.NETFrameworkv1.1.4322TemporaryASP.NETFiles目录。否则建议使用方法2。如果自己新建类库。C#获取当前路径的方法就总结到这里,希望对大家有所帮助。

C#获取当前路径的方法如下:

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

-获取模块的完整路径。

2. System.Environment.CurrentDirectory

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

3. System.IO.Directory.GetCurrentDirectory()

-获取应用程序的当前工作目录。这个不一定是程序从中启动的目录啊,有可能程序放在C:www里,这个函数有可能返回C:Documents and SettingsYB\,或者C:Program FilesAdobe\,有时不一定返回什么东东,我也搞不懂了。

4. System.AppDomain.CurrentDomain.BaseDirectory

-获取程序的基目录。

5. System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase

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

6. System.Windows.Forms.Application.StartupPath

-获取启动了应用程序的可执行文件的路径。效果和2、5一样。只是5返回的字符串后面多了一个""而已

7. System.Windows.Forms.Application.ExecutablePath

-获取启动了应用程序的可执行文件的路径及文件名,效果和1一样。

对于Windows程序和Web 应用程序来说,他们运行的路径是不一样的,所以关键是判断当前运行的程序是哪种程序.于是我们可以使用如下的代码

  1. stringpath="";
  2. if(System.Environment.CurrentDirectory==AppDomain.CurrentDomain.BaseDirectory)//Windows应用程序则相等
  3. ...{
  4. path=AppDomain.CurrentDomain.BaseDirectory;
  5. }
  6. else
  7. ...{
  8. path=AppDomain.CurrentDomain.BaseDirectory+"Bin";
  9. }

这样如果我们写了一个类库,类库中用到了Assembly.LoadFrom,由于是通用类库,所以可能用到Windows程序中也可能用到Web中,那么用上面的代码就很方便了.

1、Server.MapPath

2、System.Windows.Forms.StartupPath

3、Type.Assembly.Location

C#获取当前路径方法2可以应用于控制台应用程序,WinForm应用程序,Windows服务,方法1可以应用于Web应用程序,方法3都可以应用。

但方法3是加载应用程序的路径。如果是Web应用程序,取得的路径是: C:WINDOWSMicrosoft.NETFrameworkv1.1.4322Temporary ASP.NET Files目录。所以Web项目还是使用Server.MapPath吧。否则建议使用方法2。如果自己新建类库。可以加入对System.Windows.Forms.StartupPath的引用后使用。

C#获取当前路径的方法就总结到这里,希望对大家有所帮助。

免责声明:文章转载自《C#获取当前路径的方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇BIO 是一个连接一个线程。,NIO 是一个请求一个线程。,AIO 是一个有效请求一个线程。安装mingw下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Jenkins基于https的k8s配置

Jenkins基于https的k8s配置 登录jenkins,点击 Manage Jenkins --> Manage Plugins --> 可选插件 在搜索框中,输入关键字 kubernetes 选择安装完成后重启Jenkins 重新登录后,点击 Manage Jenkins --> Configure System, 将网页拉...

MVC3.0视频点播及上传格式转化

在MVC3.0中播放视频文件需要做一下配置:具体配置如下 View Code 1<div class="vidoplay">2<div>3<objectclassid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"codebase="http://download.macromed...

C#中实现计时器功能(定时任务和计时多长时间后执行某方法)

场景 在低液位预警弹窗点击确定后需要实现一个计时器,比如在五分钟后再执行监控。 实现思路是使用Timer然后每秒执行一个方法,在方法中对秒数进行减1操作,等倒计时结束后执行相应的操作。 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载 实现...

.NET程序运行原理及基本概念详解

一、引言 我们知道在Java中有虚拟机,代码运行时虚拟机把Java语言编译成与机器无关的字节码,然后再把字节码编译成机器指令执行,那么在.NET中程序是如何运行的呢? 其实运行原理是一样的,.NET中的虚拟机是CLR(公共语言运行时),无论是C#程序还是VB程序,首先会由CLR编译成与平台无关的中间语言IL,然后由公共语言运行时CLR的 即时编译器JI...

WCF NetTcpBinding 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作

背景:WindowsService + WCF + NetTcpBinding 之前一直使用http协议模式,改为net.tcp之后隔段时间出现:由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。 127.0.0.1:9000 记录时间:2016-01-14 10:02:58日志级别:Exception 日志位置:CloudTraPlatSOA....

在word里插入图片,并设置图片的格式

由于公司业务需要,需要在生成的word里插入图片(公司印章),仔细想了下,还是在word模板里添加一个书签,然后再该书签的位置插入图片,并设置图片的格式方便些; 代码如下: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System....