string str =Process GetCurrentProcess() MainModule FileName//可获得当前执行的exe的文件名
string str =Environment CurrentDirectory//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径
//备注 按照定义 如果该进程在本地或网络驱动器的根目录中启动 则此属性的值为驱动器名称后跟一个尾部反斜杠(如 C:\ ) 如果该进程在子目录中启动 则此属性的值为不带尾部反斜杠的驱动器和子目录路径(如 C:\mySubDirectory )
string str =Directory GetCurrentDirectory()//获取应用程序的当前工作目录
string str =AppDomain CurrentDomain BaseDirectory//获取基目录 它由程序集冲突解决程序用来探测程序集
string str =Application StartupPath//获取启动了应用程序的可执行文件的路径 不包括可执行文件的名称
string str =Application ExecutablePath//获取启动了应用程序的可执行文件的路径 包括可执行文件的名称
string str =AppDomain CurrentDomain SetupInformation ApplicationBase//获取或设置包含该应用程序的目录的名称
System Diagnostics Process GetCurrentProcess() MainModule FileName获取模块的完整路径
System Environment CurrentDirectory获取和设置当前目录(该进程从中启动的目录)的完全限定目录
System IO Directory GetCurrentDirectory()获取应用程序的当前工作目录 这个不一定是程序从中启动的目录啊 有可能程序放在C:\里 这个函数有可能返回C:\Documents and Settings\ZYB\ 或者C:\Program Files\Adobe\ 有时不一定返回什么东东 我也搞不懂了
System AppDomain CurrentDomain BaseDirectory获取程序的基目录
System AppDomain CurrentDomain SetupInformation ApplicationBase获取和设置包括该应用程序的目录的名称
lishixinzhi/Article/program/net/201311/12285要用 c++ 程序:
#include <windows.h>
#include <string>
#include <iostream>
using namespace std
string ExePath() {
char buffer[MAX_PATH]
GetModuleFileName( NULL, buffer, MAX_PATH )
string::size_type pos = string( buffer ).find_last_of( "\\/" )
return string( buffer ).substr( 0, pos)
}
int main() {
cout <<"my directory is " <<ExePath() <<"\n"
}
=====
c 程序,也许可以通过char *argv[] 寻找,
int main(int argc, char *argv[]){。。。。}
argv[0] 含程序名,可以尝试 用 system() 调 DOS 命令查找:
#include<stdio.h>
int main(int argc, char *argv[])
{
FILE *fp
char s[80]
sprintf(s,"DIR %s.c >a.log",argv[0])
system(s) // 执行后,屏幕输出 存入 a.log 文本文件
fp =fopen("a.log","r") // 打开文件
// 这里 一行一行地读文件,找到 关键词 Directory of , 例如:
// Directory of D:\ZZ\C\example
// D:\ZZ\C\example 就是当前路径
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)