windows 打开目录(文件夹)并读取目录中的文件。

x378174943 2011-01-15 08:48:16
linux C 函数库中有opendir()和readdir()函数,windows 下有相应的函数吗?
坐等解释,谢谢!
...全文
324 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2011-01-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 x378174943 的回复:]
linux C 函数库中有opendir()和readdir()函数,windows 下有相应的函数吗?
坐等解释,谢谢!
[/Quote]
CFileFind类,CFileFind::FindFile/FileNextFile()遍历文件夹;
x378174943 2011-01-16
  • 打赏
  • 举报
回复
1楼 我在使用那两个函数前,在哪或者怎么指定我要搜索的目录。谢谢!
hw_henry2008 2011-01-16
  • 打赏
  • 举报
回复
下面的代码实现搜索目录下面的所以文件,子文件夹文件等。
BOOL IsRoot(CString str )
{
if ( str.GetLength() == 3 && str.GetAt(str.GetLength()-1) == ':' ) {
return TRUE ;
}
return FALSE ;
}

void FindInAll( CString Path)
{
CString szFind;
szFind=Path;
szFind += _T("\\*.*");

WIN32_FIND_DATA FindFileData;
HANDLE hFind = FindFirstFile( szFind , &FindFileData);
if(hFind==INVALID_HANDLE_VALUE)
return ;
do{
if(FindFileData.cFileName[0] == '.' ) //过滤本级目录和父目录
continue;

CString strFile;
if(IsRoot(Path))
strFile = Path+ FindFileData.cFileName;
else
strFile = Path + _T("\\") + FindFileData.cFileName;
//至于得到目录,包括文件名什么的,很简单的。有例子。
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
FindInAll(strFile); //如果找到的是目录,则进入此目录进行递归
}
else { //找到的是文件
//这里按你的需求处理吧,呵呵···希望能帮到你。
}
} while(FindNextFile(hFind,& FindFileData));

FindClose(hFind);
}
Sidyhe 2011-01-15
  • 打赏
  • 举报
回复
楼上正解,我就不废话了。
wuyu637 2011-01-15
  • 打赏
  • 举报
回复
估计得自己封装一个了。


VC声明
HANDLE FindFirstFile( LPCTSTR lpFileName, // file name LPWIN32_FIND_DATA lpFindFileData // data buffer );

功能说明
该函数到一个文件夹(包括子文件夹)去搜索指定文件 如果要使用附加属性去搜索文件的话 可以使用FindFirstFileEx函数

参数说明
HANDLE hFindFile搜索的文件句柄 函数执行的时候搜索的是此句柄的下一文件 LPWIN32_FIND_DATA lpFindFileData 指向一个用于保存文件信息的结构体

第二个函数:FindNextFile

VC声明
BOOLFindNextFile( HANDLE hFindFile, //searchhandle LPWIN32_FIND_DATA lpFindFileData //databuffer );

64,680

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧