背景

在某些情况下,我们需要对文件时间进行修改,在这里主要和大家分享一下修改文件创建时间、修改时间和访问时间的程序,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 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;

}

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

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

  1. 更改c语言程序保存地址吗,C语言文本文件实现局部修改

    前言:以往进行文件操作时,都是以链表(变量)作为用户所见数据与文件数据之间的桥梁.用户改变数据时,先改变链表(变量)中的数据,然后直接将整个链表重新写入文件,以做到"实时同步",非 ...

  2. KEIL设置程序起始地址无效解决方法,STM32 IAP程序起始地址

    关键词: KEIL设置程序起始地址无效解决方法 STM32 IAP设置程序起始地址 KEIL设置程序起始地址 MDK设置程序起始地址 KEIL设置ROM地址无效 碰到的问题:为了实现STM32升级固件 ...

  3. keil C语言编程 位地址定义,Keil C编写下位机程序的小技巧和注意点

    1. 用C直接操作DPTR方式 我们平常用Keil C访问总线一般是定义 unsigned char xdata  *fardptr; fardptr=0xbf00; *fardptr=0; 来访问, ...

  4. c语言函数变量地址符,C语言中取地址符做函数形参?—— 引用的讨论

    取地址符&做函数形参? C语言强大且危险 引入 这个问题花去了整整一天的研究. 先看一段严蔚敏的<数据结构>中栈的例程: 这里面的&S第一遍看的时候想当然的认为是取了SqS ...

  5. java怎么将程序保存在桌面_在Java桌面应用程序中保留数据的最佳方法是什么?...

    我的桌面应用程序中有一大堆 Java对象,我试图决定将文件作为文件系统的最佳方式. 我曾经有过一些想法: >使用DataOutputStream滚动我自己的串行器:这将给我最大的控制文件中的内容 ...

  6. c语言指针的地址存放,c语言 - *指针 和 地址

    最近在研究oc的底层,全是c/c++的代码,虽然以前学过也写过,其实不怎么用都忘得差不多了. 首先我们来了解一下 * 和 &这两个符号 通俗点儿理解其实&地址就是就是一个存放地址的变量 ...

  7. linux中文语言包下载地址,centos中文语言包-官方版-centos中文语言包fonts-chinese-3.02-12.el5.noarch.rpm-独木成林...

    centos中文语言包 fonts-chinese-3.02-12.el5.noarch.rpm,直接在目录下运行: rpm -ivh fonts-chinese-3.02-12.el5.noarch ...

  8. c语言让数组地址对齐,C语言实现比特位数组在目标空间左右居中对齐三种方式...

    在LED行业中,一般一个灯亮或者不亮用一个bit位来表示(这里就不谈七彩或者灰度控制卡),假如我们屏幕大小是128点,相当于宽度16个字节,如果我们让两个汉字居中显示(两个汉字占宽度4个字节),很容易 ...

  9. 基于python的文件传输程序_GitHub - orange0cat/python-ft: 基于socket的文件传输程序,能传输整个文件夹...

    FileTransporter 这是一个基于socket(TCP)的文件(夹)传输程序 预览效果 0.环境搭建 在virtualenv环境下,cd 进入 requirements.txt所在目录,执行 ...

最新文章

  1. python用merge匹配和左连接_左手用R右手Python系列——数据合并与追加
  2. 关于因为该列没有包含在聚合函数或 GROUP BY 子句中
  3. (int)a和(int)a的区别
  4. mysql录入foreigen错误_Python MySQLdb 使用utf-8 编码插入中文数据问题
  5. django----admin
  6. lamp环境搭建经验总结
  7. 杰和科技多款商显方案亮相2017英特尔RCA论坛
  8. 机器视觉:自动织物检测系统
  9. angular中注入依赖(分页功能)。。。
  10. 新装的电脑执行maven install命令一直报Could not find artifact jdk.tools:jdk.tools:jar:1.7
  11. 高德地图加载白屏问题No implementation found for long com.autonavi.amap.mapcore.MapCore.nativeNew
  12. 腾讯翻译君在线翻译怎么翻译整个文件_7款好用的英文翻译软件推荐
  13. 3小时GIS入门教程(一):为什么要学GIS
  14. 如何修改路由器dns服务器,怎么修改路由器DNS地址
  15. NFS 服务端配置流程
  16. TensorFlow报错:ValueError The passed save_path is not a valid checkpoint
  17. bcm5396交换机级联配置_「收藏」Cisco交换机安全配置设定
  18. 【JIRA 学习】JIRA 配置缺陷的reopen 次数
  19. 浙大竺可桢学院混合班计算机专业,起底黄峥毕业的浙大混合班:学霸不算牛 个个是学神...
  20. HDU6438-Buy and Resell(贪心、思维题)

热门文章

  1. hadoop day 3
  2. iOS学习资源(二)
  3. (剑指Offer)面试题61:按之字形顺序打印二叉树
  4. Android 改变窗口标题栏的布局
  5. SQL Server数据库中所有表及字段信息
  6. setleft android,android TextView的setCompoundDrawables()方法
  7. 千万级游标_在一个千万级的数据库查寻中,如何提高查询效率
  8. 月薪3000到年薪30万,你可知“千里之行始于Python”?
  9. Python内置函数之输入输出函数
  10. Python爱好者,这里有一个库可以帮助你作为新手掌握人工智能!