`

用 _findfirst 和 _findnext 查找文件,遍历文件夹

    博客分类:
  • c++
阅读更多
标签: _findfirst _findnext 杂谈 分类: C
一、这两个函数均在io.h里面。

二、首先了解一下一个文件结构体:
struct _finddata_t {
    unsigned    attrib;
    time_t      time_create;  
    time_t      time_access;  
    time_t      time_write;
    _fsize_t    size;
    char        name[260];
};

time_t,其实就是long
而_fsize_t,就是unsigned long

现在来解释一下结构体的数据成员吧。

attrib,就是所查找文件的属性:_A_ARCH(存档)、_A_HIDDEN(隐藏)、_A_NORMAL(正常)、_A_RDONLY(只读)、 _A_SUBDIR(文件夹)、_A_SYSTEM(系统)。

time_create、time_access和time_write分别是创建文件的时间、最后一次访问文件的时间和文件最后被修改的时间。

size:文件大小

name:文件名。


三、用 _findfirst 和 _findnext 查找文件

1、_findfirst函数:long _findfirst(const char *, struct _finddata_t *);

第一个参数为文件名,可以用"*.*"来查找所有文件,也可以用"*.cpp"来查找.cpp文件。第二个参数是_finddata_t结构体指针。若查找成功,返回文件句柄,若失败,返回-1。


2、_findnext函数:int _findnext(long, struct _finddata_t *);

第一个参数为文件句柄,第二个参数同样为_finddata_t结构体指针。若查找成功,返回0,失败返回-1。

3、_findclose()函数:int _findclose(long);

只有一个参数,文件句柄。若关闭成功返回0,失败返回-1。


四、查找文件例子

#include <io.h>
#include <iostream>
using namespace std;

int main()
{
_finddata_t file;
int k;
long HANDLE;
k = HANDLE = _findfirst( "*.*", &file );
while( k != -1 )
{
  cout << file.name << endl;
  k = _findnext( HANDLE, &file );
}
_findclose( HANDLE );

return 0;
}

转自:http://blog.sina.com.cn/s/blog_67e046d10100jwdo.html
分享到:
评论

相关推荐

    c语言文件夹_findfirst()函数介绍

    下面是一个简单的示例,用于演示如何使用 `_findfirst()`、`_findnext()` 和 `_findclose()` 来查找文件。 ```c #include #include int main() { const char *to_search = "C:\\WINDOWS\\*.exe"; // 指定搜索...

    C语言遍历文件夹里所有文件

    - 使用`_findfirst`和`_findnext`函数来查找文件夹中的所有文件和子文件夹。 - 通过判断`filefind.name`是否为`.`或`..`来跳过当前目录和上级目录。 - 判断`filefind.attrib`属性来确定当前项是文件还是文件夹。 - ...

    VC++中如何遍历整个目录树查找文件.docx

    VC++ 中遍历整个目录树查找文件 在应用程序的开发过程中,经常会遇到如何...使用 VC++ 遍历整个目录树查找文件可以通过使用 _findfirst 和 _findnext 函数来实现,这个方法可以轻松地遍历整个目录树,查找指定的文件。

    C++各种遍历文件夹代码.pdf

    这个函数接收一个文件夹路径作为参数,使用`_findfirst` 和 `_findnext` 遍历当前目录下的所有文件和子目录。当遇到子目录时,调用自身进行递归遍历。 ```cpp void dfsFolder(string folderPath) { // ... do { ...

    C++获取文件夹和文件信息 (2).pdf

    首先,要使用_findfirst、_findnext和_findclose,需要包含头文件,这个头文件提供了许多用于低级别文件系统操作的函数。在某些情况下,如果需要用到字符串宏,还需要包含头文件。 _findfirst、_findnext和_...

    delphi遍历文件夹的例子

    这个例子使用了`FindFirst`和`FindNext`这两个API函数来实现这一功能,它们是Delphi中进行文件查找的基础工具,非常适合初学者学习。 `FindFirst`函数用于启动一个文件搜索,接收两个参数:一个字符串类型,表示要...

    C++各种遍历文件夹代码.docx

    总的来说,C++遍历文件夹涉及的关键点有:使用Windows API进行文件查找,理解`_findfirst`、`_findnext`和`_findclose`函数的用法,以及如何根据文件属性(如 `_A_SUBDIR`)判断是文件还是子目录。在实际编程中,还...

    c语言遍历文件夹

    该函数使用`_findfirst`和`_findnext`函数查找当前文件夹下的所有文件,并对每个文件进行判断,如果是子目录则递归调用自身继续遍历,如果是文本文件则调用`open_txt`函数打开并读取内容。 #### 6. 打开并读取文本...

    一段代码演示C++根据路径判定是目录还是文件,文件搜索,文件夹遍历等问题.pdf

    `_findfirst`函数用于初始化搜索,传入通配符(例如`"*"`)和文件信息结构体`_finddata_t`。`_findnext`函数则用于找到下一个匹配的文件或目录。如果`_findnext`返回非零值(-1),则表示没有更多文件。 3. **...

    遍历文件夹

    `struct_finddata_t` 是一个关键的数据结构,用于存储由`_findfirst` 和 `_findnext` 函数检索到的文件信息。它包含了以下成员: - `unsigned attrib`: 文件属性,例如是否为目录(_A_SUBDIR),只读(_A_RDONLY)...

    C++获取文件夹和文件信息.pdf

    本文主要关注如何使用C++中的 `_findfirst`、`_findnext` 和 `_findclose` 函数来查找和列举指定文件夹中的所有子文件夹和文件。此外,也会介绍 `SHGetFileInfo` 函数及其相关结构体,这些工具能够帮助开发者获取更...

    C++获取文件夹和文件信息 (2).docx

    在C++编程中,获取文件夹和文件信息是一项基本操作,通常用于文件管理、文件遍历等任务。本文将详细介绍如何利用C++的`_findfirst`、`_findnext`和`_findclose`函数,以及`SHGetFileInfo`函数来获取文件和文件夹的...

    C++遍历指定文件夹下的所有文

    2. **搜索文件**:使用`_findfirst64i32()`和`_findnext64i32()`函数搜索指定目录下的文件,并获取每个文件的信息。 3. **存储文件信息**:将获取到的文件信息通过`saveToLink()`函数添加到链表中,此函数负责创建...

    C++遍历某文件夹某类扩展名的文件.docx

    综上所述,这个C++程序展示了如何在Windows环境下遍历特定目录下的指定类型文件,并提供了关于文件系统操作、Windows API使用和文件遍历逻辑的基本知识。在实际开发中,应根据具体需求和目标平台选择合适的文件系统...

    C语言 实现遍历一个文件夹的所有文件

    在给出的代码示例中,使用了Microsoft Windows API中的`_findfirst`, `_findnext`, 和 `_findclose` 函数来实现这一功能。 首先,`_findfirst`函数用于开始搜索指定目录下的第一个文件。它接受两个参数,一个是目录...

    一段代码演示C++根据路径判定是目录还是文件,文件搜索,文件夹遍历等问题.docx

    - 使用 `_findfirst` 和 `_findnext` 函数遍历指定目录下的文件。`_findfirst` 初始化搜索,返回第一个匹配的文件信息;`_findnext` 则用于获取下一个文件的信息。这两个函数是Windows API中的文件搜索功能。 5. *...

    C++遍历某文件夹某类扩展名的文件.pdf

    以上代码使用了Windows API中的`_findfirst`和`_findnext`函数,这两个函数是C++标准库中不包含的,但它们在Windows平台上非常常见,可以方便地遍历文件系统。在其他操作系统或平台(如Linux、macOS),你可能需要...

    C++获取文件夹和文件信息.docx

    本文主要关注如何使用C++中的 `_findfirst`、`_findnext` 和 `_findclose` 函数来查找和获取文件及文件夹的详细信息。这些函数属于微软提供的Windows API扩展,通常用于非标准C++库的文件系统操作。 首先,我们需要...

    C语言按关键字搜索文件夹中文件的方法

    这种方法利用了C语言的`_findfirst`和`_findnext`函数来遍历指定文件夹中的所有文件和子文件夹。`_findfirst`函数用于初始化搜索,而`_findnext`函数则用于获取下一个文件的信息。`struct _finddata_t`结构体用于...

    C++从一个文件夹中读出所有txt文件的方法示例

    C++从一个文件夹中读出所有txt文件的方法示例是非常重要的知识点,需要了解struct _finddata_t结构体的成员变量的含义,并掌握如何使用_findfirst、_findnext和_findclose函数来查找和读取文件。

Global site tag (gtag.js) - Google Analytics