- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有人用过FindFirstFile函数扫描过多个相同类型的文件?
int main(int argc, char** argv){
if(argc != 3)
{
cout <<" Usage: Run [dir of images folder] [file format]" << endl;
cout <<" Example: Run \\imgs\\\\ .jpg " << endl;
return 0;
}
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
string dir = argv[1]; // store user input dir
string type = argv[2]; // store user input file type
stringstream sst;
sst << dir << "*" << type;
string folderDir = sst.str();
sst.str("");
cout << "Scanning all " << type << " files in "<< dir << endl;
cout << folderDir << endl;
/* LOADING IMAGES IN FOLDER */
我试过 folderDir.c_str() 而不是 "\imgs\*.jpg"但我无法让它工作;
hFind = FindFirstFile("\imgs\\*.jpg", &FindFileData); //images must be in .vcxproj dir
if (hFind != INVALID_HANDLE_VALUE){
int i = 0;
do {
char loc[50] = "\imgs\\"; // Obvsly, I couldn't assign argv[1] here
images.push_back(imread(strcat(loc,FindFileData.cFileName))); //pushes images into vector
img_fname[i] = FindFileData.cFileName; // stores file names into string array
cout << "Successfully loaded " << FindFileData.cFileName << endl; //prints loaded file names
i++;
}while(FindNextFile(hFind, &FindFileData));
}
此外,我可以请求帮助将 string dir
分配给 char loc[50] = "\imgs\\";
吗?如果只是 char loc[50] = dir;有可能...
我在实例化 loc 之后尝试了 strcpy(loc, dir.c_str());
但它仍然失败。在未知函数中给我一个错误(无法识别或不支持的数组类型)
最佳答案
i think, it should be only one backslash there:
"imgs\*.jpg" instead of "\imgs\\*.jpg".
this works fine for me ( and gives me the filelist ):
std::vector<std::string> readdir( const char * dmask )
{
std::vector<std::string> vec;
HANDLE hFind;
WIN32_FIND_DATA FindFileData;
if ((hFind = FindFirstFile(dmask, &FindFileData)) != INVALID_HANDLE_VALUE)
{
do {
vec.push_back( FindFileData.cFileName );
} while(FindNextFile(hFind, &FindFileData));
FindClose(hFind);
}
return vec;
}
std::vector<std::string> files = readdir("imgs\*.jpg");
关于c++ - C++ VS 2010 OpenCV 中 FindFirstFile 参数的 Concat 命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14795725/
FindFirstFile win32 函数失败。请解决问题。谢谢 #include #include #include #include #define ValidDir(data) strcmp(
可以使用 FindFirstFile() 将文件从一个目录移动或复制到另一个目录吗?既然返回的是句柄,那这个句柄可以用来做吗? 最佳答案 不,它甚至不是内核句柄。此句柄可以仅传递给FindNextFi
我使用 FindFirstFile(...) 函数编写了查找文件的程序。但是当我尝试打印这个函数的输出时,控制台窗口中打印了几串未知字符。我读了一些帖子,上面写着尝试使用 wcout 而不是 cout
我使用函数 FindFirstFile() 但我只收到内存地址 - 而不是文件名。 #include #include #include using namespace std; int mai
我在方法中使用 FindFirstfFile() 来读取文件夹中的文件在此方法中,我将目录路径作为函数参数之一读取 Functionname(structname struct_var,char *p
你好,我的代码有问题。 LPCSTR mergeString(LPCSTR firstString, std::string secondString) { string convertedS
我正在尝试创建一个强大的递归文件夹删除器功能。 使用普通目录工作得很好。 当我创建一个“硬核”目录时出现问题,例如: C:\test\x\x\x\x\x\x\x\x\x\x\x\x\x\x\x\x\x
是否可以使用 Windows API 函数 FindFirstFile 来搜索多种文件类型,例如 *.txt 和 *.doc同一时间? 我尝试用 '\0' 分隔模式,但它不起作用 - 它只搜索第一个模
我想获取特定目录中所有文件的列表。为此 |我使用以下代码 void GetFileListing(std::list& listing, std::string directory, std::str
我一直在使用 FindFirstFile 和 FindNextFile 时遇到问题,我需要让它们将所有 dll 列出到一个数组中,但我无法让它列出任何文件。我试过使用和编辑来自 MSDN 的示例代码,
我正在尝试使用 Windows API 中的 FindFirstFile 函数,我以前用过它,但现在找不到了。它只是告诉我找不到标识符。我有它的其他变体 FindFirstFileExW、FindFi
我正在使用以下代码获取有关文件系统目录的信息: LPCTSTR pStrPath = L"D:\\1"; WIN32_FIND_DATA wfd; HANDLE hDummy = ::FindFirs
我正在尝试使用 FindFirstFile 函数来遍历我所有的 .txt 文件,但是我收到了 INVALID_VALUE_HANDLE 错误试试吧,这是我的功能: int search(LPSTR l
我正在使用以下超 super 简单代码列出目录中的所有文件(Windows 8.1、Visual Studio Express 2013、C++): #include #include #incl
首先我会说我对宽字符串和 Unicode 支持基本上一无所知。我让 QString 和 QFile 为我处理 99% 的时间,但我正在尝试编译其他人为 VC6 编写的库。 当我在 Qt Creator
MSDN 说: HANDLE WINAPI FindFirstFile( LPCTSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData ); lpFileN
Windows API FindFirstFile()和FindFirstFileEx()接受通配符以作为搜索路径,例如“星号(*)或问号(?)”。我实际上无法在哪里找到它接受哪些其他字符(如果有)的
我在尝试运行在服务器上运行的 Winapi::findFirstFile 时遇到问题。我已经尝试复制 WinapiServer 类上的方法,并更改一些行,如下所示: server static con
我想遍历目录的所有子目录以找到所有 .snt 文件。但是 FindFirstFile 和 FindNextFile 只搜索给定的目录,而不是它的子目录。 具体来说,我正在搜索路径 F:\Program
我正在尝试查找所有驱动器上的所有文件,操作系统是 Windows 8 std::string FolderName = "C:\\"; FindAllFiles(FolderName)
我是一名优秀的程序员,十分优秀!