一直想抽点时间将 c/c++ 系统的学学,毕竟c/c++有时候在会比较方便些,c#写多了,也想换换语言使使,开阔下视野,使自己看问题能更宏观些,做项目的时候也会有更多选择。于是就想记点笔记,以便复习,也希望有共同爱好的朋友能相互学习。
今天关注的主题是怎样修改文件的修改时间,创建时间等,因为有时候当你修改了某一个文件后,又不想让别人知道文件被改过,所以就想把文件的修改时间该下,下面我们就来看下用c/c++怎么实现,啥也多说了,看代码:
1/**//*
2功能描述:修改文件时间
3创建时间:-04-14
4*/
5#include"stdafx.h"
6#include"windows.h"
7#include"iostream"
8usingnamespacestd;
9
10intmain(intargc,char*argv[])
11{
12if(argc==8)
13{
14FILETIMEft,ft1;
15SYSTEMTIMEsystime;
16intmYear,mMonth,mDay,mHour,mMinute,mSecond;
17
18mYear=atoi(argv[2]);mMonth=atoi(argv[3]);mDay=atoi(argv[4]);mHour=atoi(argv[5]);
19mMinute=atoi(argv[6]);mSecond=atoi(argv[7]);
20
21systime.wYear=mYear;systime.wMonth=mMonth;systime.wDay=mDay;systime.wHour=mHour;
22systime.wMinute=mMinute;systime.wSecond=mSecond;
23
24SystemTimeToFileTime(&systime,&ft);
25//把时间转换UTC
26LocalFileTimeToFileTime(&ft,&ft1);
27
28HANDLEhFile;
29//打开文件,参数说明请参考MSDN(CreateFile)
30hFile=CreateFileA(argv[1],GENERIC_READ|GENERIC_WRITE,
31FILE_SHARE_READ|FILE_SHARE_WRITE,
32NULL,
33OPEN_EXISTING,
34FILE_ATTRIBUTE_NORMAL,
35NULL);
36if(hFile==INVALID_HANDLE_VALUE)
37{
38cout<<"打开文件失败\n";
39}
40//设置时间参数(文件句柄,创建时间,修改时间)
41//注意:如果只想设置修改时间则可以(hFile,NULL,NULL,&ft1)
42SetFileTime(hFile,NULL,&ft1,&ft1);
43
44CloseHandle(hFile);
45cout<<"时间修改成功";
46return0;
47}
48
49cout<<"输入格式错误:"<<endl;
50cout<<"正确格式:";
51cout<<"\t"<<argv[0]<<"文件年月日小时分钟秒"<<endl;
52return0;
53}