首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查特定文件夹中是否存在文件?

如何检查特定文件夹中是否存在文件?
EN

Stack Overflow用户
提问于 2018-06-08 01:32:14
回答 1查看 1K关注 0票数 0

我正在使用CreateProcess复制文件。如果PC离线,如果目录不存在,我也可以捕获不同的错误。这是我遇到的问题:如果所有复制都成功,则返回0作为错误代码;如果源文件夹中没有文件,则返回0,因此不执行复制。我必须检测在源文件夹中是否没有文件。如何在MFC VC++ 2013中执行此操作?

我花了几个小时尝试不同的解决方案,但我的知识还不够高,无法实现我在互联网上找到的所有东西。所以我必须要代码,然后我才会明白。提前谢谢你。

这是我使用的代码:

代码语言:javascript
复制
temp_dest = _T("/min /c xcopy \"D:\\Test\\*.*\" \"") + m_destination + _T("\" /Y /E /Q");
LPTSTR temp_dest2 = (LPTSTR)(LPCTSTR)temp_dest;
STARTUPINFO            sinfo;
PROCESS_INFORMATION    pinfo;
memset(&sinfo, 0, sizeof(STARTUPINFO));
memset(&pinfo, 0, sizeof(PROCESS_INFORMATION));
sinfo.dwFlags = STARTF_USESHOWWINDOW;
sinfo.wShowWindow = SW_HIDE;
BOOL bSucess = CreateProcess(L"C:\\Windows\\System32\\cmd.exe", temp_dest2, NULL, NULL, FALSE, CREATE_DEFAULT_ERROR_MODE, NULL, NULL, &sinfo, &pinfo);
DWORD dwCode;
TerminateProcess(pinfo.hProcess, 2);
GetExitCodeProcess(pinfo.hProcess, &dwCode);
TCHAR msg2[100];
StringCbPrintf(msg2, 100, TEXT("%X"), dwCode); 
MessageBox(msg2, (LPCWSTR)L"DWCode 2", MB_OK | MB_ICONERROR);
if (dwCode == 4)
{
    MessageBox((LPCWSTR)L"DW 4", (LPCWSTR)L"Path not found", MB_OK | MB_ICONERROR);
}
if (dwCode == 2)
{
    MessageBox((LPCWSTR)L"DW 4", (LPCWSTR)L"PC Offline", MB_OK | MB_ICONERROR);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-08 01:39:19

您可以使用WIN32函数GetFileAttributes(..)来检查文件是否存在:

代码语言:javascript
复制
if (GetFileAttributes("C:\\test.txt") != INVALID_FILE_ATTRIBUTES)
{
    /* C:\test.txt is existing */
}

另一种方法可能是尝试打开文件(如果成功,则再次关闭它)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50747098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档