最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

C#/.NET读取或修改文件的创建时间及修改时间详解

来源:动视网 责编:小采 时间:2020-11-27 22:34:57
文档

C#/.NET读取或修改文件的创建时间及修改时间详解

C#/.NET读取或修改文件的创建时间及修改时间详解:前言 手工在博客中添加 Front Matter 文件头可是个相当费事儿的做法,这种事情就应该自动完成。 .NET 中提供了非常方便的修改文件创建时间的方法,使用这种方法,能够帮助自动完成一部分文件头的编写或者更新。 相关类型 .NET 中提供了两个不同的设置创建和修
推荐度:
导读C#/.NET读取或修改文件的创建时间及修改时间详解:前言 手工在博客中添加 Front Matter 文件头可是个相当费事儿的做法,这种事情就应该自动完成。 .NET 中提供了非常方便的修改文件创建时间的方法,使用这种方法,能够帮助自动完成一部分文件头的编写或者更新。 相关类型 .NET 中提供了两个不同的设置创建和修


前言

手工在博客中添加 Front Matter 文件头可是个相当费事儿的做法,这种事情就应该自动完成。

.NET 中提供了非常方便的修改文件创建时间的方法,使用这种方法,能够帮助自动完成一部分文件头的编写或者更新。

相关类型

.NET 中提供了两个不同的设置创建和修改时间的入口:

File 静态类

FileInfo 类


▲ File 静态类的方法


▲ FileInfo 类的方法

很明显,使用 FileInfo 类可以使用属性直接获取和赋值,用法上会比 File 方便,不过需要一个 FileInfo 的实例。

修改时间

我期待能够读取文件的创建和修改时间来获知博客文章的发布和修改时间。不过在此之前,我需要先根据 Markdown 文件元数据更新文件时间。

private void FixFileDate(FileInfo file, DateTimeOffset createdTime, DateTimeOffset modifiedTime)
{
 // 更改文件的创建时间。
 file.CreationTimeUtc = createdTime.UtcDateTime;
 // 更改文件的更新时间。
 file.LastWriteTimeUtc = modifiedTime.UtcDateTime;
 // 更改文件最近一次访问的时间。
 file.LastAccessTimeUtc = DateTimeOffset.Now.UtcDateTime;
}

至于如何获取 Markdown 文件元数据中的时间,可以使用 YamlDotNet(当然,需要自己提取 YAML 元数据头)。

读取时间

当此后需要使用文件的创建时间来更新 YAML 元数据时,只需要读取这几个属性即可。

UpdateMetaTime(file, file.CreationTimeUtc, file.LastWriteTimeUtc);

void UpdateMetaTime(FileInfo file, DateTimeOffset publishDate, DateTimeOffset date)
{
 var publishDateString = date.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss zz");
 var dateString = date.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss zz");
 // 省略更新 YAML 元数据。
}

关于 UTC 时间

也许你注意到以上我使用的时间类型都是 DateTimeOffset 而不是 DateTime,这是因为 DateTimeOffset 中记录了时区信息,不至于在使用的过程中丢掉时区信息,出现重复时间转换,发生时间错误。

总结

文档

C#/.NET读取或修改文件的创建时间及修改时间详解

C#/.NET读取或修改文件的创建时间及修改时间详解:前言 手工在博客中添加 Front Matter 文件头可是个相当费事儿的做法,这种事情就应该自动完成。 .NET 中提供了非常方便的修改文件创建时间的方法,使用这种方法,能够帮助自动完成一部分文件头的编写或者更新。 相关类型 .NET 中提供了两个不同的设置创建和修
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top