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"
8
using namespace std;
9
10
int 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

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53
