小編給大家分享一下C#/.NET如何讀取或修改文件的創(chuàng)建時間及修改時間,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
前言
手工在博客中添加 Front Matter 文件頭可是個相當費事兒的做法,這種事情就應該自動完成。
.NET 中提供了非常方便的修改文件創(chuàng)建時間的方法,使用這種方法,能夠幫助自動完成一部分文件頭的編寫或者更新。
相關類型
.NET 中提供了兩個不同的設置創(chuàng)建和修改時間的入口:
File 靜態(tài)類
FileInfo 類
▲ File 靜態(tài)類的方法
▲ FileInfo 類的方法
很明顯,使用 FileInfo 類可以使用屬性直接獲取和賦值,用法上會比 File 方便,不過需要一個 FileInfo 的實例。
修改時間
我期待能夠讀取文件的創(chuàng)建和修改時間來獲知博客文章的發(fā)布和修改時間。不過在此之前,我需要先根據(jù) Markdown 文件元數(shù)據(jù)更新文件時間。
private void FixFileDate(FileInfo file, DateTimeOffset createdTime, DateTimeOffset modifiedTime) { // 更改文件的創(chuàng)建時間。 file.CreationTimeUtc = createdTime.UtcDateTime; // 更改文件的更新時間。 file.LastWriteTimeUtc = modifiedTime.UtcDateTime; // 更改文件最近一次訪問的時間。 file.LastAccessTimeUtc = DateTimeOffset.Now.UtcDateTime; }
至于如何獲取 Markdown 文件元數(shù)據(jù)中的時間,可以使用 YamlDotNet(當然,需要自己提取 YAML 元數(shù)據(jù)頭)。
讀取時間
當此后需要使用文件的創(chuàng)建時間來更新 YAML 元數(shù)據(jù)時,只需要讀取這幾個屬性即可。
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 元數(shù)據(jù)。 }
關于 UTC 時間
也許你注意到以上我使用的時間類型都是 DateTimeOffset 而不是 DateTime,這是因為 DateTimeOffset 中記錄了時區(qū)信息,不至于在使用的過程中丟掉時區(qū)信息,出現(xiàn)重復時間轉(zhuǎn)換,發(fā)生時間錯誤。
看完了這篇文章,相信你對“C#/.NET如何讀取或修改文件的創(chuàng)建時間及修改時間”有了一定的了解,如果想了解更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)站欄目:C#/.NET如何讀取或修改文件的創(chuàng)建時間及修改時間-創(chuàng)新互聯(lián)
標題網(wǎng)址:http://www.chinadenli.net/article38/djscsp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、云服務器、靜態(tài)網(wǎng)站、網(wǎng)站設計公司、網(wǎng)站內(nèi)鏈、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容