第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 更改c语言程序保存地址吗 (C语言)修改文件时间程序(创建时间 修改时间 访问时间)...

更改c语言程序保存地址吗 (C语言)修改文件时间程序(创建时间 修改时间 访问时间)...

时间:2020-09-01 08:31:26

相关推荐

更改c语言程序保存地址吗 (C语言)修改文件时间程序(创建时间 修改时间 访问时间)...

背景

在某些情况下,我们需要对文件时间进行修改,在这里主要和大家分享一下修改文件创建时间、修改时间和访问时间的程序,C语言编写。

解决方案

我们主要调用Windows API,直接修改文件时间为自己任意设定的时间。在Windows系统中,SetFileTime函数可以直接对文件的时间属性进行修改,详细的API使用说明可以去Windows官网上查看:

BOOL SetFileTime(

HANDLE hFile,

CONST FILETIME *IpCreationTime, //文件创建时间

CONST FILETIME *IpLastAccessTime, //访问时间

CONST FILETIME *IpLastWriteTime //修改时间

);

实践

首先,我们创建一个txt文件:

新建txt文档

然后运行我们写好的程序:

程序运行截图然后我们再看文件的时间属性

运行程序后的文件时间

程序源码分享

#include

#include

#include

#include

int main(int argc, char *argv[])

{

//传参格式:filetime.exe test.txt -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;

}

下一篇文章我会分享一篇修改文件夹时间的程序,小朋友们可以提前尝试一下!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。