C++-FindFirstFile的一个简单示例出现问题
C++ - Having problems with a simple example of FindFirstFile
我使用以下超超级简单代码列出目录中的所有文件(Windows 8.1、Visual Studio Express 2013、C++):
#include <stdlib.h>
#include <stdio.h>
#include <sys/stat.h>
#include <limits>
#include <cstdio>
#include <iostream>
#include <fstream>
#include <bitset>
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
using namespace std;
void get_file_list(string DATA_DIR)
{
HANDLE hFind;
WIN32_FIND_DATA data;
hFind = FindFirstFile(LPCWSTR(DATA_DIR.c_str()), &data);
if (hFind != INVALID_HANDLE_VALUE) {
do {
printf("%sn", data.cFileName);
} while (FindNextFile(hFind, &data));
FindClose(hFind);
}
}
int main(int argc, char** argv)
{
string DATA_DIR = "D:\drobpox\Dropbox\BinaryDescriptors\LFW\DATA\*.*";
//string DATA_DIR = "c:\Users\GilLevi\Downloads\GraphsSURF\GraphsSURF\bark\*.jpg";
string OUT_DIR = "D:\drobpox\Dropbox\BinaryDescriptors\LFW\LATCH_TXT_FILES\LATCH8";
get_file_list(DATA_DIR);
}
但是,I"hFind"始终等于"INVALID_HANDLE_VALUE"。我仔细检查了一下路径,并尝试了各种不同的路径。
原因可能是我正在运行一个64位应用程序并使用WIN32_IND_DATA?
提前感谢,Gil
FindFirstFile
,方法是在函数名和结构中添加A
;
WIN32_FIND_DATAA data;
hFind = FindFirstFileA(DATA_DIR.c_str(), &data);
由于您使用的是LPCWSTR
,因此您应该在程序中使用std::wstring
,而不是std::string
。
此外,当你施放LPCWSTR
时,没有转换魔法。它只是一个愚蠢的"C"转换,除了关闭编译器之外,基本上什么都不做。
相关文章:
- 关于简单C++函数(is_palindrome)的逻辑的问题
- 退出简单while循环时出现问题
- 关于 c++ 函数中指针赋值的简单问题
- reinterpret_cast,只读访问,简单的可复制类型,会出什么问题?
- Opengl问题:很可能是简单的纹理问题
- 简单的问题 - 如何从单独的"结构"内的'class'访问变量?
- 运行简单的.oct文件时Octave崩溃,我的代码出了什么问题?
- 开发简单的时钟和日期类时遇到问题
- macos GCC 工具链编译简单 hello 世界的问题
- 具有 std:out_of_range 问题的简单密码 (C++)
- Qt的新信号/时隙语法问题 - 连接到一个简单的函数
- 这个简单的 C++ 递归函数来反转字符串有什么问题?
- 创建一个简单的计算器,添加时遇到问题
- 简单的最大除数问题 c++ 实现抛出时间限制已超出
- 这段简单的代码有什么问题?
- 通过此指针访问时的成员差异和自身的成员指针(简单的 QT 示例问题)
- 具有编译问题的简单(递归)可变参数模板"accumulate_for"函数
- C / C++链接问题与非常简单的设置
- 简单的游戏数据库问题
- 异常处理语法问题简单