windows下更改文件创建修改访问时间

在文件a.c中复制下方代码,gcc编译后产生a.exe:

#include 
#include 
#include 
#include 

int main(int argc, char *argv[])
{
    //传参格式:filetime.exe test.txt 2011-01-08 17:00:33
    SYSTEMTIME spec_time;
    sscanf(argv[2], "%d-%d-%d", &spec_time.wYear, &spec_time.wMonth, &spec_time.wDay);
    sscanf(argv[3], "%d:%d:%d", &spec_time.wHour, &spec_time.wMinute , &spec_time.wSecond);
    spec_time.wDayOfWeek        = 1;
    spec_time.wMilliseconds     = 0;

    HANDLE hFile = CreateFile(argv[1], GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);

    if (hFile == INVALID_HANDLE_VALUE)
    {
        printf("Get file handle failed,error = %s\n", GetLastError());
        return -1;
    }

    FILETIME ft, LocalFileTime;
    SystemTimeToFileTime(&spec_time, &ft);
    LocalFileTimeToFileTime(&ft, &LocalFileTime);

    if(SetFileTime(hFile, &LocalFileTime, &LocalFileTime, &LocalFileTime))
    {
        printf("success\n");
    }
    else
    {
        printf("fail\n");
    }
    CloseHandle(hFile);
    return 0;
}

使用方式,shell内执行:

a.exe 你想更改的文件名 2000-01-01 20:00:00

即可将文件的创建,修改,访问时间更改为2000-01-01 20:00:00
配合FileZilla的更改时间戳功能,可以将ftp迟交的作业伪装成按时提交。

你可能感兴趣的:(环境配置与使用)