Github地址

函数:

 HANDLE WINAPI FindFirstFile(
_In_ LPCTSTR lpFileName,
_Out_ LPWIN32_FIND_DATA lpFindFileData
);
BOOL WINAPI FindNextFile(
_In_ HANDLE hFindFile,
_Out_ LPWIN32_FIND_DATA lpFindFileData
);

@ LPCTSTR与char *的转换

参考资料:TCHAR与char的互转

LPCTSTR会根据当前的字符集进行自适应:如果为ANSI,LPCTSTR = const char *;如果为Unicode,LPCTSTR = const wchar_t *;

但LPCTSTR = const wchar_t *时,需要使用WideCharToMultiByte() / MultiByteToWideChar()函数;

@ FindFirstFile()

由这个函数返回的句柄可以作为一个参数用于FindNextFile函数。这样一来,就可以方便的枚举出与lpFileName参数指定的文件名相符的所有文件。

@ 核心代码

  void GetRawImagePath(TCHAR* folder, std::vector<TCHAR *> &image_path)
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
TCHAR path[];
lstrcpy(path, folder);
lstrcat(path, _T("\\"));
lstrcat(path, _T("*.*")); /**必须加*.*才能搜索文件夹下所有文件*/ hFind = FindFirstFile(path, &FindFileData);
if (INVALID_HANDLE_VALUE == hFind)
{
std::cout << "FindFirstFile failed:" << GetLastError() << std::endl;
return;
} do{
if (FindFileData.cFileName[] == '.')
continue; if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
std::cout << "directory" << std::endl;
TCHAR subpath[];
lstrcpy(subpath, folder);
lstrcat(subpath, _T("\\"));
lstrcat(subpath, FindFileData.cFileName);
GetRawImagePath(subpath, image_path);
}
else
{
std::cout << "file" << std::endl;
TCHAR *path = new TCHAR[];
lstrcpy(path, folder);
lstrcat(path, _T("\\"));
lstrcat(path, FindFileData.cFileName);
image_path.push_back(path);
} } while (FindNextFile(hFind, &FindFileData)); FindClose(hFind);
}

最新文章

  1. 【原】通过JS打开IE新tab(非Window)的解决方案
  2. Jmeter MySQL数据库性能测试
  3. mysql error: (2006, &#39;MySQL server has gone away&#39;)
  4. 使用Adobe Edge Inspect在各种设备中轻松测试同一页面
  5. 如何查看linux内核的版本号?
  6. 深入说明HDR
  7. sbt 配置
  8. USACO Section 4.3 Street Race(图的连通性+枚举)
  9. POJ2796/DP/单调栈
  10. 编写第一个ROS(创建工作空间workspace和功能包package)
  11. iOS关于友盟分享弹不出面板问题
  12. SVN汉化教程2017.10.6
  13. go语言nsq源码解读六 tcp.go、tcp_server.go
  14. c# Lambda操作类封装
  15. angular $digest 运行10次货10次以上会抛出异常
  16. Ubuntu Server 16.04设置WiFi
  17. 必须知道的Spring Boot中的一些Controller注解
  18. CUDA ---- Warp解析
  19. Codeforces Round #396 (Div. 2) C. Mahmoud and a Message dp
  20. seo 基础

热门文章

  1. CF633(div.2)B. Sorted Adjacent Differences
  2. CF633(div.2)C. Powered Addition
  3. ssl &amp; ike/ipsec
  4. python通俗讲解闭包
  5. Linux c++ vim环境搭建系列(6)——CMakeLists.txt多文档多目录组织方法和编写示例
  6. undefined 和 not defined
  7. stand up meeting 1/20/2016
  8. 对短路变形POJ3615
  9. Redisson 实现分布式锁的原理分析
  10. jdbctemplate打印sql