当时用Directory.GetCurrentDirectory()和Environment.CurrentDirectory时需要注意:
当使用InstallShield Limited Edition发布的桌面应用程序时,快捷方式需要指定WrokingDirectory,不然当通过快捷方式打开程序指定的路径有问题,不是当前执行程序exe的目录。
string str = "";
tr = Directory.GetCurrentDirectory();//获取应用程序的当前工作目录
str = Environment.CurrentDirectory;//获取应用程序的当前工作目录
//获取应用程序的当前工作目录(最后有反斜杠,前两个没有)
str = AppDomain.CurrentDomain.BaseDirectory;
//当前应用程序exe文件的完整路径(包含exe文件名)
str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
Console.WriteLine("{0}",str);
//以下这两种获取应用程序目录的上一级目录时,如果通过cmd命令提示符进行打开时,会有问题,
//输出的是C:\User\ 我是因为需要做一个bat文件打开exe时遇到了此问题,做此备注
//获取当前应用程序的上一级目录(最后没有反斜杠)
string str = System.IO.Path.GetFullPath("..");
//获取当前目录的上一级目录(最后有反斜杠)
string str = new System.IO.DirectoryInfo("../").FullName;
//使用以下方式,即使通过cmd命令提示符打开时也是正常的
//BaseDirectory由于获取的路径最后有反斜杠
//所以parentInfo.FullName只是把后面的反斜杠去掉了,没有实现真正的上一级目录
//可以通过parentInfo.Parent.FullName 进行再次父级
DirectoryInfo parentInfo = Directory.GetParent(AppDomain.CurrentDomain.BaseDirectory);