永发信息网

求一段VC代码

答案:1  悬赏:70  手机版
解决时间 2021-07-31 16:20
  • 提问者网友:原来太熟悉了会陌生
  • 2021-07-31 06:23

要求 打开程序同目录下同名的文件夹

如 G:\autorun.exe 运行后打开 G:\autorun 目录

PS 需要判断该目录是否存在

bool FolderIsExist(CString sPath)
{
WIN32_FIND_DATA wfd;
bool bValue = false;
HANDLE hFile = FindFirstFile(sPath, &wfd);
if ((hFile != INVALID_HANDLE_VALUE) && (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
bValue = true;
}
FindClose(hFile);
return bValue;
}


void OpenDir()
{
char appPath[MAX_PATH];
//得到自身文件路径
GetModuleFileName(NULL,appPath,256);

CString appPathString = appPath;

if (1) //这里怎么写?
{
char openDir[80]={0};
strcpy(openDir,"explorer ");
strcat(openDir,appPathString.Left(sizeof(appPathString)-4)); //这里貌似有问题。。
//打开目录
WinExec(openDir,1);
}


}

最佳答案
  • 五星知识达人网友:上分大魔王
  • 2021-07-31 06:31
#include <afxwin.h>
#include <windows.h>

#pragma comment(lib, "libcmt.lib")

bool FolderIsExist(CString sPath)
{
WIN32_FIND_DATA wfd;
bool bValue = false;
HANDLE hFile = FindFirstFile(sPath, &wfd);
if ((hFile != INVALID_HANDLE_VALUE) && (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
bValue = true;
}
FindClose(hFile);
return bValue;
}


void OpenDir()
{
char appPath[MAX_PATH];
//得到自身文件路径
GetModuleFileName(NULL,appPath,256);

CString appPathString = appPath;
int i = appPathString.ReverseFind('\\');
CString path = appPathString.Left(i+1);
CString name = appPathString.Mid(i+1);
name = name.Left(name.Find('.'));
CString fullPath = path+name;
// puts(fullPath);

if (FolderIsExist(fullPath)) //这里怎么写?
{
char openDir[80]={0};
strcpy(openDir,"explorer ");

strcat(openDir, fullPath); //这里貌似有问题。。
WinExec(openDir, 1);
} else puts("NOT EXIST.");
}

int main()
{
OpenDir();
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯