FindFirstFile问题无法获得任何示例。

时间:2012-11-25 10:30:54

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

我一直遇到FindFirstFile和FindNextFile的问题我需要让他们将所有dll列入数组但我不能让它列出任何文件。我尝试过使用和编辑MSDN中的示例代码,但是它们无法将错误类型的变量传递给函数。我现在的代码是抱歉,如果它是一团糟,但我正在尝试一切让它工作。我也在使用argv[1],因为我认为它提供了.exe的目录,这是我需要的,因为那些dll将被存储。我完全不知道为什么我尝试的所有例子都不起作用以及为什么我不能修改它们来工作。

WIN32_FIND_DATA FindFileData;
HANDLE hFind = INVALID_HANDLE_VALUE;

string directorySearch = "E:\\My Documents\\Visual Studio 2010\\Projects\\SEP-Asignment-One\\Debug\\*";

// Find the first file in the directory.
hFind = FindFirstFile(LPCWSTR("E:\\My Documents\\Visual Studio 2010\\Projects\\SEP-Asignment-One\\Debug\\*"), &FindFileData);

if (hFind == INVALID_HANDLE_VALUE) 
{
  printf ("Invalid file handle. Error is %u.\n", GetLastError());
} 
else
{
  printf ("First file name is %s.\n", FindFileData.cFileName);

                    // List all the other files in the directory.
  while (FindNextFile(hFind, &FindFileData) != 0) 
  {
     printf ("Next file name is %s.\n", FindFileData.cFileName);
  }
  FindClose(hFind);

任何帮助都是先发制人的。

2 个答案:

答案 0 :(得分:4)

使用std::wstringL"Hello"之类的宽字符串文字,并记住在包含UNICODE之前定义<windows.h>(但默认情况下在Visual Studio项目中已完成)。 / p>

答案 1 :(得分:0)

而不是 hFind = FindFirstFile(LPCWSTR("...")..., 尝试 hFind = FindFirstFile(_T("...")