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}

 

posted on 2009-04-15 16:26  优柔的和弦  阅读(5265)  评论(0编辑  收藏  举报

导航