WEB开发网
开发学院软件开发VC VC++实现文件夹时间属性的获取与更改 阅读

VC++实现文件夹时间属性的获取与更改

 2007-03-25 21:32:47 来源:WEB开发网   
核心提示: 根据前面的分析可以看出,按照打开文件的方式来打开文件夹是整个处理过程的关键,VC++实现文件夹时间属性的获取与更改(2),通常主要用于创建、打开文件的Win32 API函数CreateFile()并非只能用来创建和打开文件对象,实际上它还可以用来创建、打开管道、邮槽、通讯资源、磁盘驱动器(

根据前面的分析可以看出,按照打开文件的方式来打开文件夹是整个处理过程的关键,通常主要用于创建、打开文件的Win32 API函数CreateFile()并非只能用来创建和打开文件对象,实际上它还可以用来创建、打开管道、邮槽、通讯资源、磁盘驱动器(只对Windows NT而言)、控制台和文件夹(只能打开)等。下面给出CreateFile()的原型:

HANDLE CreateFile( LPCTSTR lpFileName, // 文件名指针
 DWORD dwDesiredAccess, // 访问模式
 DWORD dwShareMode, // 共享模式
 LPSECURITY_ATTRIBUTES lpSecurityAttributes, //安全属性
 DWORD dwCreationDisposition, // 创建方式
 DWORD dwFlagsAndAttributes, // 文件属性
 HANDLE hTemplateFile // 指向待复制属性的文件指针
);

当用其进行文件夹打开操作时,第一个参数lpFileName应被设置成为待打开的文件夹的名称;至于访问模式可以根据需要灵活设置,对于本文而言,对源文件夹只进行读取操作故可以设置为GENERIC_READ,对于备份后的文件夹由于需要将属性信息写入,因此需要有GENERIC_WRITE的支持;共享模式参数dwShareMode的设置与进行文件处理时的设置没有什么区别,在此可以设置为FILE_SHARE_READ|FILE_SHARE_DELETE;由于CreateFile()函数在进行文件夹操作时,不能以创建方式进行,因此创建方式只能打开已经存在的对象,即dwCreationDisposition应当设置为OPEN_EXISTING;相比而言,dwFlagsAndAttributes参数的设置是比较重要的,正是通过将该参数设置为FILE_FLAG_BACKUP_SEMANTICS属性才使CreateFile()函数来进行打开文件夹的操作。

通常,文件、文件夹的时间属性指的是创建时间、最近访问时间和最近修改时间等几个具体属性。对于文件的上述属性可以通过GetFileTime()来获取,对于文件夹,在通过CreateFile()函数将其打开后,其获取得到的句柄可以当作文件句柄来使用。因此,通过GetFileTime()函数同样也可以得到文件夹的时间属性。GetFileTime()函数原型如下:

Tags:VC 实现 文件夹

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接