日期:2014-05-17  浏览次数:21052 次

C#工作目录的感慨

Yes, as for me, I'm rather new to the C# programming language, so when i use XmlTextReader(FileName) and directly by

?

XmlDocument doc = new XmlDocument();???
doc.Load(sFile);????

?

without any prefix before the file name.

?

they both turn to failure for the visual studio can't find the file within its IDE directory such as:

d:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\databaseconfig.xml

?

i first found out that why isn't it able to find the xml file just inside my current directory, i was astonished. It came to be the IDE directory of the visual studio is the default working directory, yes, it is, we should either set the new working directory or get the current directory...detailed ways are as follows:

?

C#获取程序当前路径的方法

//获取新的 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文件所在的目录)

?

got from: http://www.cnblogs.com/marcozh/archive/2008/10/19/1314667.html

?

and something about reading content from xml file:

?

http://www.cnblogs.com/scgw/archive/2009/06/07/1498309.html