1、普通文件操作如果文件放在当前exe目录下,程序中直接使用使用文件名,比如“config.ini”即可,但是当软件开机自启动时需要操作文件直接使用文件名则会找不到文件;
2、因为此时程序是找不到当前目录的,所以如果需要开机启动的程序需要操作文件应该先获取当前Exe的路径,或者文件路径已经固定,具体步骤:
第一种方法:
//获得EXE文件路径
TCHAR szFilePath[256] = {0};
GetModuleFileNameW(NULL, szFilePath, MAX_PATH);
(_tcsrchr(szFilePath, _T('\\')))[1] = 0; //删除文件名,只获得路径字串
CString Path(szFilePath);
CFile File;
if(File.Open(Path+_T("n_path.ini"),CFile::modeRead))
{
File.Read(m_NameProgram,256);
File.Close();
AddInfo(_T("n_path.ini ok"));
}
第二种方法:
//获得EXE文件路径
WCHAR szFilePath[MAX_PATH] = { 0 };
GetModuleFileNameW(NULL, szFilePath, MAX_PATH);
char path[MAX_PATH] = {0};
wcstombs(path,szFilePath,MAX_PATH);
(_tcsrchr(path,'\\'))[1] = 0; //删除文件名,只获得路径字串
欢迎大家指正。