Chinaunix首页 | 论坛 | 博客
  • 博客访问: 579594
  • 博文数量: 190
  • 博客积分: 10937
  • 博客等级: 上将
  • 技术积分: 2205
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-07 11:28
文章分类

全部博文(190)

文章存档

2012年(1)

2011年(27)

2010年(20)

2009年(142)

我的朋友

分类:

2009-04-07 16:24:47

1.   System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
     获取模块的完整路径。
2.   System.Environment.CurrentDirectory
     获取和设置当前目录(该进程从中启动的目录)的完全限定目录。
3.   System.IO.Directory.GetCurrentDirectory() 
     获取应用程序的当前工作目录。这个不一定是程序从中启动的目录啊,有可能程序放在C:\www里,这个函数有可能返回C:\Documents and Settings\ZYB\,或者C:\Program Files\Adobe\,有时不一定返回什么东东,我也搞不懂了。
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一样。
百度一下,C#当前目录,得到的结果大多是Environment.CurrentDirectory,何为当前目录?本程序运行的目录吗?听起来是那么一回事。君请看。
1.我写了个测试程序编译后exe产生的目录为
D:\Test\WindowsApplication1\WindowsApplication1\bin\Debug
在 程序中 MessageBox.Show(Environment.CurrentDirectory)一下,看到的是一个对话框,上面分明写着几个大字“ D:\Test\WindowsApplication1\WindowsApplication1\bin\Debug”,
2.啊,好像Environment.CurrentDirectory就是程序运行的目录呢,不急,再看看。添加一个OpenFileDialog叫openFileDialog1,在openFileDialog1的ShowDialog()后,选择文件C:\Download\魔杰座\01.龙战骑士.mp3,确定,这时候,再MessageBox.Show(Environment.CurrentDirectory)一下,怎么回事呢,怎么对话框上显示的是C:\Download\魔杰座。
3.结论:Environment.CurrentDirectory不是程序运行的目录,它是可以改变的。不知道这是不是.Net的bug。
4.用Application.StartupPath来获取程序运行目录吧
阅读(1122) | 评论(0) | 转发(0) |
0

上一篇:BitBlt

下一篇:常用的经典文件操作方法

给主人留下些什么吧!~~