Windows平台C语言获取文件的一些属性

上传人:平*** 文档编号:14352460 上传时间:2017-10-29 格式:DOC 页数:5 大小:67.16KB
返回 下载 相关 举报
Windows平台C语言获取文件的一些属性_第1页
第1页 / 共5页
Windows平台C语言获取文件的一些属性_第2页
第2页 / 共5页
Windows平台C语言获取文件的一些属性_第3页
第3页 / 共5页
Windows平台C语言获取文件的一些属性_第4页
第4页 / 共5页
Windows平台C语言获取文件的一些属性_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《Windows平台C语言获取文件的一些属性》由会员分享,可在线阅读,更多相关《Windows平台C语言获取文件的一些属性(5页珍藏版)》请在金锄头文库上搜索。

1、Windows 平台有一个 WIN32_FIND_DATA 结构,用来存储文件的一些属性(这里指的属性和下面结构中文件属性成员不同。这里的属性是指下面结构的所有成员) 。该结构的定义如下。typedef struct _WIN32_FIND_DATA DWORD dwFileAttributes; /文件属性 FILETIME ftCreationTime; / 文件创建时间 FILETIME ftLastAccessTime; / 文件最后一次访问时间 FILETIME ftLastWriteTime; / 文件最后一次修改时间 DWORD nFileSizeHigh; / 文件长度高 32

2、 位 DWORD nFileSizeLow; / 文件长度低 32 位 DWORD dwReserved0; / 系统保留 DWORD dwReserved1; / 系统保留 TCHAR cFileName MAX_PATH ; / 长文件名 TCHAR cAlternateFileName 14 ; / 8.3 格式文件名 WIN32_FIND_DATA, *PWIN32_FIND_DATA;可以使用 FindFirstFile() 和 FindNextFile() 函数可以得到 文件(包括文件夹)的WIN32_FIND_DATA 结构信息。FindFirstFile 的原型如下:FindF

3、irstFile()函数中,第一个参数是一个字符串。可以是一个路径名或者文件名,并且支持通配符 * 和 ?。比如想查找 D 盘下的所有文件,可以写成 D:*.* 或者 D:*。如果只想查找 D 盘下的 txt 文件,那么可以写成 D:*.txt。第二个参数是指向 WIN32_FIND_DATA 结构体的一个指针。正如函数的名字FindFirstFile 那样, 该函数会查找第一个符合查找条件的文件(使用通配符可以有多少文件满足查找条件) 。然后把这个文件的一些信息写入这个结构里面。如果第一个参数没有使用通配符,而是一个文件名,那么将只能找到一个符合条件的文件。函数的返回值是一个句柄 HANDL

4、E,说白了也就是一个整型。这个返回值可以用来查找下一个符合查找条件的文件。这就是下面的 FindNextFile 函数了。如果函数调用失败,将返回 INVALID_HANDLE_VALUEFindNextFile 的原型如下第一个参数就是 FindFirstFile 函数的返回值。第二个参数和 FindFirstFile 一样,在一个指针,用来存放被查找到的文件的一些信息。如果查找成功,函数返回非 0 值。否则返回 0。可以调用 GetLastError()函数来查看失败原因。如果没有符合要求的文件了,那么也将返回 0。此时,调用 GetLastError()函数将返回 ERROR_NO_MO

5、RE_FILES。在使用完上面两个函数后,要记得使用 CloseFile(HANDLE hFindFile)函数来关闭这个句柄。上面三个函数需要包括 windows.h 头文件.说了这么多,下面给出一个例子代码。#include#includeusing namespace std;int main()WIN32_FIND_DATA fileAttr;HANDLE handle;handle = FindFirstFile(D:*, &fileAttr);if( handle = INVALID_HANDLE_VALUE ) cout#includeusing namespace std;os

6、tream& operator (ostream& os, const SYSTEMTIME& t)ost.wYear-t.wMonth-t.wDay ;ost.wHour: t.wMinute: t.wSecondendl;return os;int main()WIN32_FIND_DATA fileAttr;HANDLE handle;SYSTEMTIME sysTime;FILETIME localFileTime;handle = FindFirstFile(D:*.txt, &fileAttr);if( handle = INVALID_HANDLE_VALUE )coutinva

7、lid handle value GetLastError()endl;elsecoutfileAttr.cFileName size is (fileAttr.nFileSizeHigh * (MAXDWORD+1) + fileAttr.nFileSizeLow) endl;FileTimeToLocalFileTime(&fileAttr.ftCreationTime, &localFileTime); /转换成当地时间FileTimeToSystemTime(&localFileTime, &sysTime); /转换成人看的时间类型coutsysTimeendl;FindClose(handle);return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号