gpt4 book ai didi

c++ - 使用具有特定搜索条件的 FindFirstFIleEx() 的示例

转载 作者:行者123 更新时间:2023-11-28 01:13:38 25 4
gpt4 key购买 nike

我询问了有关在子目录中查找标准的问题。第一个答案是使用 FindFirstFileEx()。看来这个功能不适合这个目的,或者我用错了。

那么有人可以解释我将如何在文件夹中搜索匹配的文件的所有子文件夹(提供一些示例标准).doc;.txt;*.wri;并且比 2009-01-01 更新?

请为这些标准提供具体的代码示例,以便我知道如何使用它。

如果不可能,是否有其他方法可以完成这项毫不费力的任务???我感到很困惑,因为到目前为止还没有众所周知/显而易见的工具/方法来做到这一点。

最佳答案

来自 MSDN :

如果您引用该页面中的代码片段:

#include <windows.h>
#include <tchar.h>
#include <stdio.h>

void _tmain(int argc, TCHAR *argv[])
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;

if( argc != 2 )
{
_tprintf(TEXT("Usage: %s [target_file]\n"), argv[0]);
return;
}

_tprintf (TEXT("Target file is %s\n"), argv[1]);
hFind = FindFirstFileEx(argv[1], FindExInfoStandard, &FindFileData,
FindExSearchNameMatch, NULL, 0);
if (hFind == INVALID_HANDLE_VALUE)
{
printf ("FindFirstFileEx failed (%d)\n", GetLastError());
return;
}
else
{
_tprintf (TEXT("The first file found is %s\n"),
FindFileData.cFileName);
FindClose(hFind);
}
}

您会看到可以调用 FindFirstFileEx,其中 argv 1是要查找的字符串 (LPCSTR) 模式,&FindFileData 是包含已找到数据的文件信息的数据结构。hFind 是您在后续调用 FindNextFile 时使用的句柄。我认为您还可以通过添加更多搜索参数使用 FindFirstFileEx 的第四个和第六个参数。

祝你好运!

编辑:顺便说一句,我认为您可以使用 GetFileAttributes() 检查文件或目录的属性。 .. 只需传递在 FileFindData 中找到的文件名..(我认为文件名可以指文件名或目录名)

编辑:MrVimes,这是你可以做的(伪代码)

找到第一个文件(与*匹配)

  • 检查文件查找数据是否为“.”、“..”(这些不是真正的目录或文件)
    • 如果检查通过,检查文件查找数据是否具有您要查找的属性(即检查文件名,文件属性,甚至可以在文件查找数据中检查文件创建时间,以及什么不)并用它做任何事情
      • 如果检查通过,对文件做任何你需要做的事情
    • 如果检查失败,调用 findnextfile 或结束,由您决定

类似的东西..

关于c++ - 使用具有特定搜索条件的 FindFirstFIleEx() 的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/514199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com