列出文件夹中的所有文件,只打印文件名的第一个字符

时间:2013-05-18 13:55:21

标签: visual-studio-2010 visual-c++

我正在尝试访问指定文件夹中的所有图像,获取其名称,然后传递它们以进行进一步处理(准确地获取它们的像素值,但现在这不相关)。以下测试代码应列出找到的每个图像的名称,但是,由于某种原因,它仅列出每个图像的第一个字母。

#include <windows.h>

int main(int argc, char* argv[])
{
WIN32_FIND_DATA search_data;

memset(&search_data, 0, sizeof(WIN32_FIND_DATA));

HANDLE handle = FindFirstFile(L"images\\*.jpg", &search_data);

while(handle != INVALID_HANDLE_VALUE)
{
  printf("Found file: %s\r\n", search_data.cFileName);

  if(FindNextFile(handle, &search_data) == FALSE)
    break;
}

return 0;
}

1 个答案:

答案 0 :(得分:1)

您的程序是针对Unicode编译的,但您的printf格式字符串需要ASCII字符串。将%s更改为%S。