gpt4 book ai didi

c++ - 在特定目录 C++ 中按扩展名搜索

转载 作者:可可西里 更新时间:2023-11-01 11:39:34 25 4
gpt4 key购买 nike

在特定目录中,我需要找到所有具有特定扩展名的文件(例如 .log)而不是将它保存在某个地方。只需要 c++ 解决方案,因为我正在 win 2003 服务器上尝试它,而 c++ 是我的限制。非常感谢你munch

最佳答案

您可以使用 FindFirstFile 枚举目录中的所有文件和 FindNextFile (完成后不要忘记调用 FindClose)。您可以将过滤器传递给这些函数以仅查找某些文件名,例如目录\*.log

当您枚举文件时,WIN32_FIND_DATA返回的结构会告诉您每个文件的文件名和属性(以及其他信息)。对于每个文件,通过检查它是否具有 FILE_ATTRIBUTE_NORMAL 标志来检查文件属性以确保它是一个常规文件,以便您忽略目录。

例如:

WIN32_FIND_DATA fileInfo;
HANDLE hFind = FindFirstFile("C:\\directory\\to\\search\\*.log", &fileInfo);
if(hFind == INVALID_HANDLE_VALUE)
; // handle error
else
{
do
{
if(fileInfo.dwFileAttributes & FILE_ATTRIBUTE_NORMAL)
{
printf("Found a .log file: %s\n", fileInfo.cFileName);
}
} while(FindNextFile(hFind, &fileInfo));
if(GetLastError() != ERROR_NO_MORE_FILES)
; // handle error
FindClose(hFind);
}

关于c++ - 在特定目录 C++ 中按扩展名搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3771938/

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