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