WindowsAPI --Windows数据结构(GetFileAttributesEx())

WindowsAPI --Windows数据结构

GetFileAttributesEx()

	GetFileAttributesEx()获取指定文件或目录的文件系统的属性信息。如果要实现交互式操作,可以使用GetFileAttributesTransacted 函数。
    参数:
	 lpFileName[in]:文件或目录的名字,对于ANSI版本,名字不能大于MAX_PATH(260)。
    返回值:
    如果成功,返回值包含文件或目录的属性。如果失败,返回值是INVALID_FILE_ATTRIBUTES。
 

两个结构:

1、FILETIME: 文件时间结构----由高位和低位组成,指针可用LPFILETIME 或 PFILETIME
typedef struct _FILETIME
 {
    DWORD dwLowDateTime;
    DWORD dwHighDateTime;
    
} FILETIME, *PFILETIME, *LPFILETIME;
2、SYSTEMTIME :系统时间结构----指针可用PSYSTEMTIME 或 LPSYSTEMTIME
typedef struct _SYSTEMTIME
 {
    WORD wYear;
    WORD wMonth;
    WORD wDayOfWeek;
    WORD wDay;
    WORD wHour;
    WORD wMinute;
    WORD wSecond;
    WORD wMilliseconds;
    
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
文件属性: WIN32_FILE_ATTRIBUTES_DATA
typedef struct _WIN32_FILE_ATTRIBUTE_DATA
 {
    DWORD dwFileAttributes;
    FILETIME ftCreationTime;
    FILETIME ftLastAccessTime;
    FILETIME ftLastWriteTime;
    DWORD nFileSizeHigh;
    DWORD nFileSizeLow;
    
} WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;

文件的属性、文件的创建时间、文件的最后访问时间,文件的最后写入时间,文件的大小,分高位和低位

几个文件时间转换函数:

 FileTimeToDosDateTime():    将文件时间转换为MS-DOS日期              
 FileTimeToLocalFileTime():UTC文件时间转换成本地文件时间         
 FileTimeToSystemTime():64位时间转换为系统时间
 

案例程序:

功能:获取文件属性(时间为例)
#include<Windows.h>
#include<stdio.h>

//自定义函数:转换时间并显示
DWORD ShowFileTime(PFILETIME lptime)
{
	FILETIME ftLocal;//保存转换后的本地时间
	SYSTEMTIME st; //保存转换后的系统时间
	FileTimeToLocalFileTime(lptime, &ftLocal); 

	FileTimeToSystemTime(&ftLocal, &st);
	printf("%d年%#02d月%#02d日,%#02d:%#02d:%#02d\n", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
	return 0;
}

int main()
{

	WIN32_FILE_ATTRIBUTE_DATA wfad;
	if (!GetFileAttributesEx("Windows Struct.cpp", GetFileExInfoStandard, &wfad))
	{
		printf("获取文件属性失败:%d\n", GetLastError());
		return 1;
	}

	printf("创建时间:\t");
	ShowFileTime(&wfad.ftCreationTime);
	printf("最后访问时间:\t");
	ShowFileTime(&wfad.ftLastAccessTime);
	printf("修改时间:\t");
	ShowFileTime(&wfad.ftLastWriteTime);
	
	system("pause");
	return 0;
}

运行结果

在这里插入图片描述

结语:谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随心漂流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值