WIN32_FIND_DATA结构详解
来源:互联网 发布:淘宝旗舰店买到假货 编辑:程序博客网 时间:2024/06/09 16:28
WIN32_FIND_DATA结构描述了一个由FindFirstFile, FindFirstFileEx, 或FindNextFile函数查找到的文件信息,
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;
可以通过FindFirstFile()函数根据当前的文件存放路径查找该文件来把待操作文件的相关属性读取到WIN32_FIND_DATA结构中去:
WIN32_FIND_DATA ffd ;
HANDLE hFind = FindFirstFile("c:\\test.dat",&ffd);
在使用这个结构时不能手工修改这个结构中的任何数据,结构对于开发人员来说只能作为一个只读数据,其所有的成员变量都会由系统完成填写。在MSDN帮助中可以查找到关于WIN32_FIND_DATA结构的更加详细的说明。
if(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
这个判断语句是通过 将dwFileAttributes和FILE_ATTRIBUTE_DIRECTORY做位的与运算
来判断所找到的项目是不是文件夹
因为 FindFirstFile返回的 findData 中 dwFileAttributes项的值
可能是
FILE_ATTRIBUTE_ARCHIVE
FILE_ATTRIBUTE_COMPRESSED
FILE_ATTRIBUTE_DIRECTORY
FILE_ATTRIBUTE_HIDDEN
FILE_ATTRIBUTE_NORMAL
FILE_ATTRIBUTE_OFFLINE
FILE_ATTRIBUTE_READONLY
FILE_ATTRIBUTE_SYSTEM
FILE_ATTRIBUTE_TEMPORARY
中几项的组合值
findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
的结果只能是两种:
FILE_ATTRIBUTE_DIRECTORY 非零值 ,if条件是真
0 ,if条件是假
通过 findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
可以判断 dwFileAttributes项的值中是否 FILE_ATTRIBUTE_DIRECTORY,即判断所找到的项目是不是文件夹
这种对位运算结果的判断,在windows编程中有很多
如窗体属性,鼠标按键
- WIN32_FIND_DATA结构详解
- WIN32_FIND_DATA结构详解
- WIN32_FIND_DATA结构详解
- WIN32_FIND_DATA结构
- WIN32_FIND_DATA结构
- WIN32_FIND_DATA结构
- WIN32_FIND_DATA结构
- WIN32_FIND_DATA结构
- WIN32_FIND_DATA结构
- WIN32_FIND_DATA结构
- WIN32_FIND_DATA结构
- (摘)WIN32_FIND_DATA结构
- WIN32_FIND_DATA结构介绍
- 文件属性结构体:WIN32_FIND_DATA
- WIN32_FIND_DATA
- WIN32_FIND_DATA
- WIN32_FIND_DATA
- WIN32_FIND_DATA
- struct stat结构体的详解和用法 .
- 【Weblogic集群】Weblogic Cluster BEA-000116故障处理经验
- linux内核2.6升级到3.11.4
- bootstrap中的Navigational tabs, pills,和lists标签
- WEB服务器安全:基本配置(1)
- WIN32_FIND_DATA结构详解
- 如何提高网络推广员自身的素养?
- hdu1963 教你如何从有钱人变更有钱的人
- Android 防止Toast重复弹出相同的信息
- 配置RHEL6使用CentOS的yum源
- ajaxFileUpload插件上传文件
- libev源码分析(一)libev数据结构整理
- git stash
- 亚马逊云计算服务