C#获取本执行程序所在的当前路径

C#获取本执行程序所在的当前路径,第1张

获取和设置当前目录的完全限定路径

string str = System Environment CurrentDirectory

Result: C:\xxx\xxx

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

string str = System Windows Forms Application StartupPath

Result: C:\xxx\xxx

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

string str = System Diagnostics Process GetCurrentProcess() MainModule FileName

Result: C:\xxx\xxx\xxx exe

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

string str = System AppDomain CurrentDomain BaseDirectory

Result: C:\xxx\xxx\

获取应用程序的当前工作目录

string str = System IO Directory GetCurrentDirectory()

Result: C:\xxx\xxx

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

string str = System AppDomain CurrentDomain SetupInformation ApplicationBase

Result: C:\xxx\xxx\

获取当前进程的完整路径 包含文件名

string str = this GetType() Assembly Location

Result: C:\xxx\xxx\xxx exe

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

string str = System Windows Forms Application ExecutablePath

Result: C:\xxx\xxx\xxx exe

lishixinzhi/Article/program/net/201311/15184

获取当前工作目录可以使用

char *getcwd( char *buffer, int maxlen )

而要找到当前所运行的文件的目录,可以使用

readlink("/proc/self/exe", char *buffer, int maxlen )

GetCurrentDirectory是取得当前工作路径,如果程序中改变了这个路径比如用CFileDialog打开了一个文件,GetCurrentDirectory得到的结果会发生变化。

一般来说,取得程序运行目录的方法是用GetModuleFileName来获取当前Module的完整路径,当其第一个参数hModule置NULL的时候得到当前APP的绝对路径,然后去掉最后一个"\"以后的部分即文件名部分,就得到了程序运行目录。

大体上可以这样写(仅供参考):

char buffer[MAX_PATH+1]

::GetModuleFileName (NULL,buffer,MAX_PATH)

for(int i=MAX_PATH-1i>=0i--)

{

if(*(buffer+i)!='\\')

{

*(buffer+i)=0

}else{

break

}

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存