我还想问,这两个函数查询到的文件信息有什么查别吗
时间: 2024-04-10 20:33:43 浏览: 28
`_findfirst()`和`FindFirstFile()`函数都用于查询文件信息,但它们在返回的文件信息类型和结构上有一些区别。
1. `_findfirst()`函数:
- 返回的文件信息类型是`struct _finddata_t`,定义在`<io.h>`头文件中。
- `_finddata_t`结构体的定义如下:
```c
struct _finddata_t {
unsigned attrib; // 文件属性
time_t time_create; // 创建时间
time_t time_access; // 访问时间
time_t time_write; // 修改时间
_fsize_t size; // 文件大小
char name[260]; // 文件名
};
```
- `_findfirst()`函数返回的是一个句柄(`intptr_t`类型),可以通过该句柄以及后续的`_findnext()`函数遍历查询到的文件信息。
2. `FindFirstFile()`函数:
- 返回的文件信息类型是`WIN32_FIND_DATA`,定义在`<windows.h>`头文件中。
- `WIN32_FIND_DATA`结构体的定义如下:
```c
typedef struct _WIN32_FIND_DATAA {
DWORD dwFileAttributes; // 文件属性
FILETIME ftCreationTime; // 创建时间
FILETIME ftLastAccessTime; // 访问时间
FILETIME ftLastWriteTime; // 修改时间
DWORD nFileSizeHigh; // 文件大小(高位)
DWORD nFileSizeLow; // 文件大小(低位)
DWORD dwReserved0; // 保留
DWORD dwReserved1; // 保留
CHAR cFileName[MAX_PATH]; // 文件名
CHAR cAlternateFileName[14]; // 替代文件名
} WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
```
- `FindFirstFile()`函数返回的是一个句柄(`HANDLE`类型),可以通过该句柄以及后续的`FindNextFile()`函数遍历查询到的文件信息。
总结两者的区别:
- 返回的文件信息类型不同:`_findfirst()`返回的是`struct _finddata_t`,而`FindFirstFile()`返回的是`WIN32_FIND_DATA`。
- 文件大小类型不同:`_finddata_t`结构体中的`size`类型是`_fsize_t`,而`WIN32_FIND_DATA`结构体中的文件大小有两个成员变量`nFileSizeHigh`和`nFileSizeLow`。
- 结构体成员变量名称不同:各个成员变量的名称在两个结构体中也有所不同。
需要根据具体的开发环境和使用情况选择适合的函数,并根据返回的文件信息类型使用相应的结构体成员变量来获取文件信息。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)