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
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)