1、

#include <stdio.h>
#include <windows.h> void GetFileTimeZ(char *_pcFullFileName, FILETIME *_pftCreateTime, FILETIME *_pftAccessTime, FILETIME *_pftWriteTime);
void PrintFileTimeZ(FILETIME *_pftCreateTime, FILETIME *_pftAccessTime, FILETIME *_pftWriteTime);
void SetFileTimeZ(char *_pcFullFileName, FILETIME *_pftCreateTime, FILETIME *_pftAccessTime, FILETIME *_pftWriteTime); int main(int _argc, char** _argv)
{
// 参数:获取 文件"_argv[1]"的创建/访问/写入时间,设置到 文件"_argv[2]"上面去。
printf("_argc : %d\n", _argc);
printf("_argv[1] : %s\n", _argv[]);
// for (int i=0; i<_argc; i++)
// printf("%s\n", _argv[i]);
if (_argc <= )
{
printf("_argc : %d\n", _argc);
return ;
}
printf("\n"); FILETIME ftCreateTime={}, ftAccessTime={}, ftWriteTime={};
GetFileTimeZ(_argv[], &ftCreateTime, &ftAccessTime, &ftWriteTime);
SetFileTimeZ(_argv[], &ftCreateTime, &ftAccessTime, &ftWriteTime); return ;
} /// *** void GetFileTimeZ(char *_pcFullFileName, FILETIME *_pftCreateTime, FILETIME *_pftAccessTime, FILETIME *_pftWriteTime)
{
HANDLE hFile = CreateFile(_pcFullFileName,
GENERIC_WRITE | GENERIC_READ, //必须有GENERIC_READ属性才能得到时间
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,//TRUNCATE_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL); if (hFile == INVALID_HANDLE_VALUE)
{
printf("CreateFile return INVALID_HANDLE_VALUE, GetLastError() : %d\n", GetLastError());
return;
} if ( ! GetFileTime(hFile, _pftCreateTime, _pftAccessTime, _pftWriteTime) )//获取文件时间
{
printf("GetFileTime failed, GetLastError() : %d\n", GetLastError());
CloseHandle(hFile);
return;
} CloseHandle(hFile); PrintFileTimeZ(_pftCreateTime, _pftAccessTime, _pftWriteTime);
} void PrintFileTimeZ(FILETIME *_pftCreateTime, FILETIME *_pftAccessTime, FILETIME *_pftWriteTime)
{
SYSTEMTIME st = {};
SYSTEMTIME stLocal = {};
GetSystemTime(&st);// 这里得到的时间是标准系统时间,也就是0时区的时间。
GetLocalTime(&stLocal);// 这里得到的是本地时间,也就是标准时间+时区时间 printf("Local time (now) : \n\t Year:%d, Month:%d, (DayOfWeek:%d,) Day:%d \n\t Hour:%d, Minute:%d, Second:%d, Milliseconds:%d\n",
stLocal.wYear, stLocal.wMonth, stLocal.wDayOfWeek, stLocal.wDay,
stLocal.wHour, stLocal.wMinute, stLocal.wSecond, stLocal.wMilliseconds);
printf("System time (now) : \n\t Year:%d, Month:%d, (DayOfWeek:%d,) Day:%d \n\t Hour:%d, Minute:%d, Second:%d, Milliseconds:%d\n",
stLocal.wYear, stLocal.wMonth, stLocal.wDayOfWeek, stLocal.wDay,
stLocal.wHour, stLocal.wMinute, stLocal.wSecond, stLocal.wMilliseconds);
printf("\n"); // //将文件时间转换为本地系统时间的两种方式:
// //(1)
// FileTimeToLocalFileTime(&fCreateTime,&localTime);//将文件时间转换为本地文件时间
// FileTimeToSystemTime(&localTime, &sysTime);//将文件时间转换为本地系统时间
//
// //(2)
// FileTimeToSystemTime(&fCreateTime, &sysTime);//将文件时间转换为标准系统时间
// SystemTimeToTzSpecificLocalTime(&sysTime, &sysTime)//将标准系统时间转换为本地系统时间 FILETIME ftLocal = {}; if (_pftCreateTime != NULL)
{
FileTimeToLocalFileTime(_pftCreateTime, &ftLocal);//将文件时间转换为本地文件时间
FileTimeToSystemTime(&ftLocal, &stLocal); printf("CreateTime (file) : \n\t Year:%d, Month:%d, (DayOfWeek:%d,) Day:%d \n\t Hour:%d, Minute:%d, Second:%d, Milliseconds:%d\n",
stLocal.wYear, stLocal.wMonth, stLocal.wDayOfWeek, stLocal.wDay,
stLocal.wHour, stLocal.wMinute, stLocal.wSecond, stLocal.wMilliseconds);
}
if (_pftAccessTime != NULL)
{
FileTimeToLocalFileTime(_pftAccessTime, &ftLocal);//将文件时间转换为本地文件时间
FileTimeToSystemTime(&ftLocal, &stLocal); printf("AccessTime (file) : \n\t Year:%d, Month:%d, (DayOfWeek:%d,) Day:%d \n\t Hour:%d, Minute:%d, Second:%d, Milliseconds:%d\n",
stLocal.wYear, stLocal.wMonth, stLocal.wDayOfWeek, stLocal.wDay,
stLocal.wHour, stLocal.wMinute, stLocal.wSecond, stLocal.wMilliseconds);
}
if (_pftWriteTime != NULL)
{
FileTimeToLocalFileTime(_pftWriteTime, &ftLocal);//将文件时间转换为本地文件时间
FileTimeToSystemTime(&ftLocal, &stLocal); printf("WriteTime (file) : \n\t Year:%d, Month:%d, (DayOfWeek:%d,) Day:%d \n\t Hour:%d, Minute:%d, Second:%d, Milliseconds:%d\n",
stLocal.wYear, stLocal.wMonth, stLocal.wDayOfWeek, stLocal.wDay,
stLocal.wHour, stLocal.wMinute, stLocal.wSecond, stLocal.wMilliseconds);
}
} void SetFileTimeZ(char *_pcFullFileName, FILETIME *_pftCreateTime, FILETIME *_pftAccessTime, FILETIME *_pftWriteTime)
{
HANDLE hFile = CreateFile(_pcFullFileName,
GENERIC_WRITE | GENERIC_READ, //必须有GENERIC_READ属性才能得到时间
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,//TRUNCATE_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL); if (hFile == INVALID_HANDLE_VALUE)
{
printf("CreateFile return INVALID_HANDLE_VALUE, GetLastError() : %d\n", GetLastError());
return;
} if ( ! SetFileTime(hFile, _pftCreateTime, _pftAccessTime, _pftWriteTime) )//获取文件时间
{
printf("SetFileTime failed, GetLastError() : %d\n", GetLastError());
CloseHandle(hFile);
return;
} CloseHandle(hFile);
}

2、

3、

VC.文件时间的更多相关文章

  1. VC++文件操作之最全篇

    一.剖析VC中的文件操作 各种关于文件的操作在程序设计中是十分常见,如果能对其各种操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而在较短的时间内编写出高效的代码,因而熟练的掌握文件操作是十分 ...

  2. Linux的3个文件时间

    文件的三个时间相信大家都已经很熟悉windows操作系统了,当我们在windows系统下创建一个文件时,系统同时会为这个文件建立相关的参数去描述这个文件,如图: 这些参数包括文件的大小,文件类型,位置 ...

  3. Linux文件时间属性

    Linux文件时间属性                                                                                         ...

  4. 一个简单的反射连接程序(修改文件时间,以及创建Windows服务)

    program SvrDemo; uses  Windows,  WinSvc,  winsock; const  RegName = 'SvrDemo'; var  szServiceName: p ...

  5. [转帖]创建文件或修改文件时间 touch

    Linux命令(五)创建文件或修改文件时间 touch https://www.cnblogs.com/ay-a/p/7900274.html touch -t .x86_64.rpm 记得 wind ...

  6. Linux命令(五)创建文件或修改文件时间 touch

    Linux中 touch 命令可以改变文档或目录时间, 包括存取时间或更改时间, 也可以用于创建新文件. 命令格式: touch [选项] [参数] 选项: -a   只更改文件的读取时间. -m   ...

  7. 十四、文件和目录——文件时间和utime函数

    14.1 文件时间 存在于 stat 结构体中 14.2 文件时间函数 14.2.1 介绍 utime(修改文件的存取时间和更改时间) 相关函数 utimes,stat #include <sy ...

  8. Linux 文件时间记录属性 调优

    Linux 文件时间属性介绍 atime:(access time)显示的是文件中的数据最后被访问的时间,比如系统的进程直接使用或通过一些命令和脚本间接使用.(执行一些可执行文件或脚本) mtime: ...

  9. linux下查看和修改文件时间

    一.查看文件时间及相关命令 1.stat查看文件时间 [root@web10 ~]# stat install.log File: "install.log" Size: 3338 ...

随机推荐

  1. PyTorch 常用方法总结1:生成随机数Tensor的方法汇总(标准分布、正态分布……)

    在使用PyTorch做实验时经常会用到生成随机数Tensor的方法,比如: torch.rand() torch.randn() torch.normal() torch.linespace() 在很 ...

  2. 合并ts到mp4

    这个比较好用. copy /b d:\xxx\download_ts\*   d:\xxx\download_ts\new.mp4 用python ffmpeg也可以,不过我合出来有卡顿或者掉声问题, ...

  3. 用Java实现MVPtree——MVPtree核心算法代码的搭建

    项目需要,需要把MVPtree这种冷门的数据结构写入Java,然网上没有成形的Java实现,虽说C++看惯了不过对C++实现复杂结构也是看得蒙蔽,幸好客户给了个github上job什么的人用Java写 ...

  4. jQuery实现全选与全不选功能

    初始时: 实现功能后: 实现该功能的核心代码: <script> $(function(){ $("#selectBtn").click(function(){ con ...

  5. 面试题:JS中map的陷阱

    题目: ['2', '3', '4'].map(parseInt); 请说出上面代码的执行结果 错误回答: [2, 3, 4] 真正答案: [2, NaN, NaN] 解析: 因为 map 的算子是有 ...

  6. Tree Implementation with Python

    Tree Implementation with Python List of List 代码如下: def binary_tree(val): return [val, [], []] def in ...

  7. 20145315何佳蕾《网络对抗》web基础

    实验步骤 (1).Web前端HTML(1分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. (2).Web前端javascipt(1分) ...

  8. 大R玩家体验时空猎人折扣平台多角度分析

    <时空猎人>讲述了时空裂隙的出现,导致大批魔物入侵阿达拉大陆.玩家可扮演狼人.机械师.异能者.冰魄等职业,与这片大陆的人们保卫家园. 游戏拥有宠物.等战斗培养元素,还引入竞技场.攻城战等P ...

  9. Selenium android driver

    selenium android « s « Jar File Download http://www.java2s.com/Code/Jar/s/selenium-android.htm How t ...

  10. ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined) A

    2018-02-19 A. Palindromic Supersequence time limit per test 2 seconds memory limit per test 256 mega ...