C++获取文件修改时间

#include <string>
using namespace std;

//使用window api
static string GetFileModifiedTime(const wstring& path)
{		
	struct _stat64i32 statbuf;
	_wstat64i32(path.c_str(), &statbuf);			
	char buf[20];
	strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", _localtime64(&statbuf.st_mtime));
	return buf;
}
#include <filesystem>
#include <string>
using namespace std;
namespace fs = std::filesystem;

//使用filesystem
// 参考: https://blog.csdn.net/haiross/article/details/45718743
// time_t: 表示从1970-01-01 00:00:00以来的秒数
// filetime: 表示从1601-01-01 00:00:00以来的100纳秒为单位的时间
// 1601到1970相差369年,即11644473600秒
// __std_fs_file_time_epoch_adjustment = 0x19DB1DED53E8000LL = 116444736000000000
static string GetFileModifiedTime(const fs::path& path)
{
	auto ftime = fs::last_write_time(path).time_since_epoch().count();
	ftime = (ftime - __std_fs_file_time_epoch_adjustment) / 10000000;
	char buf[20];
	strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", _localtime64(&ftime));
	return buf;
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值