龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

用Visual C++实现改变指定的文件和文件夹的属性

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
摘要: 文件的属性包括文件的产生修改和访问时间以及读写隐现等,在DOS下文件的属性可以用DOS命令加以修改,在WINDOWS下,可以通过右键的属性改变一组文件和文件夹的读写属性,但是

摘要: 文件的属性包括文件的产生修改和访问时间以及读写隐现等,在DOS下文件的属性可以用DOS命令加以修改,在WINDOWS下,可以通过右键的属性改变一组文件和文件夹的读写属性,但是却不能修改文件的产生修改和访问时间,并且不能修改子目录下的文件和文件夹的属性。本文基于Windows的API设计了通用的文件和文件夹的属性(包括文件的产生修改和访问时间以及读写隐现等)的修改方法,并实现了其Visual C++程序编码。

---- 文件的属性的修改具有广泛的使用价值,修改文件的读写隐现等属性,可以实现文件的保护和控制,尤其是修改文件的产生修改和访问时间,可以避免因防病毒更改系统时间而造成的文件修改时间的紊乱所形成的不便,例如,对程序员来说,编译时,系统有可能又重新编译那些修改时间紊乱的文件,造成不必要的麻烦。

---- 一、应用的API函数

---- 1、API中的文件函数组提供了文件读写、属性设置的众多API函数,在本编码中用到的该函数组中的函数有:

HANDLE CreateFile( LPCTSTR, DWORD, DWORD,LPSECURITY_ATTRIBUTES,

DWORD,DWORD,HANDLE ); 

---- 该函数产生或者打开一个系统对象,并返回一个用以访问该对象的句柄,这些对象可以是文件、文件夹、管道等。

HANDLE FindFirstFile( LPCTSTR, LPWIN32_FIND_DATA );

该函数在指定目录寻找与指定文件名匹配的文件和文件夹,并返回一个查询句柄。

BOOL FindNextFile( HANDLE,LPWIN32_FIND_DATA );

该函数继续一个由查询句柄指定的查询过程。

BOOL FindClose( HANDLE );

该函数关闭指定的查询句柄,结束指定的查询。

DWORD GetFileAttributes( LPCTSTR );

该函数检取指定的文件的属性信息。

BOOL SetFileAttributes( LPCTSTR,DWORD );

该函数设置指定的文件的属性信息。

---- 2、API中的时间函数组提供了有关时间转换的众多API函数,在本编码中用到的该函数组中的函数有:

BOOL SystemTimeToFileTime( CONST SYSTEMTIME *,LPFILETIME  );

该函数将系统时间转换成文件时间,文件时间是一个64位长度的数,

表示从1601年1月1日起的时间偏移,以千万分之一秒为单位。

BOOL LocalFileTimeToFileTime(CONST FILETIME *,LPFILETIME );

该函数将本时区的文件时间转换成格林威治时间的文件时间。

BOOL SetFileTime( HANDLE,CONST FILETIME*,CONST FILETIME *,CONST FILETIME * );

该函数设置文件产生修改和访问的时间。

精彩图集

赞助商链接