WIN32_FIND_DATA.cFileName的值为什么会是"."啊?

来源:百度知道 编辑:UC知道 时间:2024/05/12 04:51:30
API函数
HANDLE FindFirstFile(
LPCTSTR lpFileName, // pointer to name of file to search for
LPWIN32_FIND_DATA lpFindFileData // pointer to returned information
);
调用后lpFindFileData.cFileName的值通常是什么?
为什么有时候会是"."啊?
请教了
谢谢
那为什么有时候还是".."呢?

..是上层目录,也就是父目录
列完这两个目录,才开始列目录中的其他文件的
这个函数要配合findnextfile的

这个属性有三种取值

. 表示当前目录
.. 表示上一级目录
另外就是文件名或者目录名了

如果是目录名可以用 dwFileAttributes 判断是否为目录还是文件

如果需要可以用递归的方法递归子目录.

关于文件的全部属性信息。总计有以下以下9种:文件的标题名、文件的属性(只读、存档,隐藏等)、文件的创建时间、文件的最后访问时间、文件的最后修改时间、文件大小的高位双字、文件大小的低位双字、保留、保留。在这里只有文件标题名和文件的长度可以通过CFile类比较方便的获得,而对于其他几种属性的获取和设置就无能为力了。
在用findfirst()和findnext()函数去查找磁盘文件时经常使用的一个数据结构WIN32_FIND_DATA的成员变量里包含了以上所有的文件属性,因此可以通过这个结构作为获取和更改文件属性的手段。该结构的内容如下:
typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes; //文件属性
FILETIME ftCreationTime; // 文件创建时间
FILETIME ftLastAccessTime; // 文件最后一次访问时间
FILETIME ftLastWriteTime; // 文件最后一次修改时间
DWORD nFileSizeHigh; // 文件长度高32位
DWORD nFileSizeLow; // 文件长度低32位
DWORD dwReserved0; // 系统保留
DWORD dwReserved1; // 系统保留
TCHAR cFileName[ MAX_PATH ]; // 长文件名
TCHAR cAlternateFileName[ 14 ]; // 8.3格式文件名
} WIN32_FIND_DATA, *PWIN32_FIND_DATA;
可以通过FindFirs