javascript 时间戳转时分秒_有关时间规则的探讨(四):FAT32文件系统下的时间规则...

点击点击蓝字关注,让我们一起努力学习

哈喽,时隔多日俺又回来啦!在前一篇的有关时间规则的探讨(三):NTFS文件系统下的时间规则中我们对Windows 10系统下的NTFS文件系统的时间规则做了简要探讨,本次我们将继续对Windows 10系统的另一种文件系统——FAT32文件系统进行时间规则的探讨,Let's go!

(温馨提示:测试过程会很长,太长不看可直接下翻至结论部分,不过缺少了过程可就没意思了哟。本文约有4200字并有大量配图,全文阅读约需17-22分钟,请选择合适且充足的时间进行阅读。建议看过文章后(或者在看文章的同时)自己动手做一遍加深理解,如果本文有帮到你,请不要忘记关注并在文末点赞、点击“在看”哟!)

1

被测系统简介

本次测试仍然是在Windows 10家庭版上进行的。Windows 10是由美国微软公司开发的应用于计算机和平板电脑的操作系统,具有较强的易用性和安全性,其良好的GUI(图形用户接口)界面使得大多数用户在使用时更多地依靠鼠标及键盘进行操作,而非在命令行里输入命令。

2

FAT32文件系统

本期测试的系统为FAT32文件系统。FAT32文件系统的根源是FAT:一个被称为文件分配表(File Allocation Table,首字母缩略字:FAT)的专用扇区,Windows的文件系统在每个硬盘都用其来储存跟踪全部文件位置所需的数据。以前操作系统中使用的大多是16位的FAT,现在的操作系统涉及到的FAT文件系统一般都是32位的FAT(U盘大多默认为FAT32文件系统)。FAT32指的是文件分配表是采用32位二进制数记录管理的磁盘文件管理方式,因FAT类文件系统的核心是文件分配表(FAT),其名字便由此得来。

FAT32是从FAT和FAT16发展而来的,其优点是稳定性和兼容性好,能充分兼容Win 9X及以前版本,且维护方便;缺点是安全性差,且最大只能支持32GB分区,单个文件也只能支持最大4GB。(FAT16为16GB。前面我们也提到过,如果想用U盘存储大小超过4GB的文件,建议将U盘格式化为exFAT文件系统。文末我们会简要介绍exFAT文件系统)

值得一提的是,FAT文件系统的兼容性很好,在不同的操作系统上都得到了广泛的支持,如Windows、Linux、FreeBSD和BeOS等都支持FAT文件系统,MacOS X操作系统也在除启动盘之外的其它卷上支持FAT文件系统。

3

其他前导知识

在Windows 10系统下的FAT32文件系统中,显式的时间信息共有三个,分别为:

记录的创建(Birth Time)、修改(Modified Time)、访问(Accessed Time)时间。

值得注意的是,在FAT文件系统所记录的时间信息中,访问时间(Accessed Time)仅包含年月日信息而不包含时分秒信息。因此,为观察到访问时间所发生的变化,本次测试将在每一步对应的操作之后将系统时间进行更改,以使得日期发生变化。

4

测试前所需的准备工作

Windows下查看文件的时间戳较为方便,其创建时间、修改时间、访问时间可直接通过如下操作进行查看:选中文件– 右键查看属性。

0f2fd6c621f44320f29f7a01b93f5535.png

如果有工具的话,可以借助winhex或者X – Ways等工具进行查看文件的详细信息。使用工具时除可查看创建、修改、访问时间外,还可查看文件的记录更新时间。本次测试采用X – Ways进行查看(默认展示$STAND_INFO记录的时间信息)。

8295f0652fe1e5bec95b60a62ada7aa9.png

(其中LT指的是Local Time,本地时间。另,其实FAT系统中也会记录“记录更新时间”(见测试),但有时是显示为空的,因此认为显示为空一直到有内容之前,之间的“记录更新时间”都不发生改变。此外,FAT32下的时间信息也分别由$STAND_INFO 和$FILE_NAME所记录,但未显式出现时便认为其不变。如无特殊注明,本文测试所指的时间信息均为$STAND_INFO记录的时间信息。)

使用之前已经创建好的虚拟磁盘,其已被划分为四个分区:两个分区为NTFS文件系统,两个分区为FAT32文件系统。其中的两个NTFS文件系统已在上次测试中被使用,剩余的两个FAT32文件系统供本次测试使用。

3a52c4e4aab5abf0405a42298b4869b6.png

5

测试流程

测试过程与前几次的测试大体相同:

1、将创建的虚拟磁盘添加到X – Ways中。

2、在创建的虚拟磁盘上依次执行操作:创建文件、打开文件(不修改内容)、重命名文件、修改文件内容、复制文件到别处、复制文件到当前文件夹下并以别名保存、移动文件、下载文件、权限变更、删除文件、恢复文件。

3、考虑到FAT32的访问时间属性不会记录具体的时分秒,因此在每一次操作之前先将系统日期进行更改(为观察到访问时间的变化),再在每一步操作结束后,在X – Ways中更新磁盘快照并查看时间戳信息,将其与之前的时间戳进行比较,查看其中的哪些项目发生了改变。

4、将每一步的结果截图留存,并将最终结果制成表格,便于展示。

接下来就让我们开始测试吧!

(再次提醒:测试过程会很长,太长不看可直接下翻至结论部分,不过缺少了过程可就没意思了哟。不过既然已经熟悉了思路,强烈建议自己动手做一做、看一看呀!)

6

测试过程

创建文件(9.2)

创建一个名为新建文本文档.txt的文件。因为该文件之前并不实际存在,所以其时间戳经历了“从无到有”的过程,因此认为该操作使得各项时间信息发生了改变。

需要说明的是,由于在Windows系统的UI界面下,创建文件的同时用户即被要求给新文件名命,因此该操作实际上等同于重命名,不论用户是否给文件进行名命操作,Windows都会在用户退出名命界面后将文件视为已重命名(当存在重名时则会提示文件已存在)。

有意思的是,其修改时间滞后于其创建时间,原因可自行思考。

cf6f168101964e53253db8d4374b1c61.png

打开文件(9.3)

在文件夹中直接双击打开该文件停留一段时间后关闭,对比得其三项时间信息均不发生改变。

6cfd681288d1c3b41e9c45aa04a2c4a6.png

重命名(9.4)

将文件新建文本文档.txt重命名为1.txt,三项时间信息均不发生改变。

64d17286acb871d35fd07d749cf74298.png

修改(9.5)

因为原文件内容为空,所以添加了内容即为对原文件内容进行改变。在文件中输入下图右侧所示的语段并进行保存,发现其修改时间访问时间发生改变。

71fdc3c1abb209e1484d14282b9442c8.png

卷内复制(9.6)

使用右键将文件从I:/1/复制到I:/2/,分别查看原文件、新文件的时间戳分别如下图所示,发现原文件的访问时间发生改变,新文件创建时间和访问时间发生改变。

0301d0e968e9588534b0020b3202cb1c.png

87858742facebd88eba21f28ba392ad3.png

跨卷复制(9.7)

使用右键将文件从I:/1/复制到J:/1/,分别查看原文件、新文件的时间戳分别如下图所示,发现原文件的访问时间发生改变,新文件创建时间和访问时间发生改变,且出现了记录更新时间,认为该项操作之前记录更新时间都不发生改变,而该项操作使得记录更新时间发生改变。

37c2c6bfdc9fddb97f0d27154d8a6a48.png

95f5eeb771eef560f444510827803a1e.png

卷内移动(9.8)

将文件从I:/1/剪切到I:/3/目录下,发现其时间信息未发生改变。

c8301b5bce49f1af3d916bebae8ac04f.png

跨卷移动(9.9)

将文件从I:/3/剪切到J:/2/目录下,发现记录更新时间和访问时间发生改变,且$STAND_INFO(创建时间)所记录的创建时间不变,$FILE_NAME(创建时间2)所记录的创建时间信息发生改变(关于$STAND_INFO和$FILE_NAME的内容,请见上一篇推文)。

a5ba232ee3e86ad719f0dc894bf11896.png

下载文件(9.10)

从邮箱中下载文件羽肿 - 花火が瞬く夜に.flac到文件夹I:/1/,因为也是“从无到有”的过程,所以认为四项均发生改变。

此外,其创建时间及修改时间之间的差异也再次体现了下载的流程:先创建、后接受。若文件大小较大,则该流程将被体现得更为明显。

675e7241adf5b86c0818e4dfecd49918.png

权限更改(9.11)

找到目录I:/1/下的羽肿 - 花火が瞬く夜に.flac,点击右键 – 查看属性如下图所示:

321eca4afc8500c60cddc3e7952e6c4b.png

将属性更改为“只读”后如下图所示:

26a4afe72afcac80fe5b35f1c5b2424a.png

查看其时间信息如下图所示,发现其访问时间发生改变:

bbb71df640a2aeeb5d79254b303a9b2b.png

删除文件(9.12)

将文件羽肿 - 花火が瞬く夜に.flac从G:/1/移至回收站,然后将回收站所在分区加入X – Ways中并找到羽肿 - 花火が瞬く夜に.flac,查看相关信息,发现时间信息未发生改变。(注意不能用shift + delete删除,否则将无法查看!)

f80a15594847378f3f4e0ffebffd42fb.png

Tips:

这里选择文件$RUPUE9H.flac的原因见上一篇推文。

恢复文件(9.13)

将文件羽肿 - 花火が瞬く夜に.flac从回收站中恢复至原文件夹并进行查看,发现时间信息未发生改变。

e3be293a5b1d59ef5af09b65e041820f.png

7

总结

终于到了总结部分啦!如果你是直接跳到最后的,那真的是错过了一个很精彩的探究过程呢。将上述过程及结论($STAND_INFO记录的时间信息的规则)整理成表格如下所示:

118b519f500a796315e198a441163c30.png

此外,针对本次操作过程有一些需要注意的点:

1、和对NTFS文件系统的测试过程相同,在命令行使用命令对文件操作的结果和通过右键(即GUI,图形用户接口)进行操作的结果是不一样的。同样的,在本次测试过程中我并未测试这一点,原因仍然是Windows的GUI实在是很便捷,通过GUI对电脑上的文件进行操作仍是我们大多数人的主要方式。

2、与上一篇推文中提到的相同,根据文件对象的不同,时间规则在细节处会有不同的表现。

3、由于FAT文件系统的兼容性较好,针对FAT文件系统时间规则的检测本应在多种操作系统上进行(包括但不限于Windows、Linux、MacOS等),然而本文并未进行该项操作,读者可自行进行测试。

本次的测试相较于上次的测试而言更为混乱,一方面是由于Windows 10的FAT32文件系统下也有两种八处时间信息,且$FILE_NAME所记录的时间信息不会显示地表示;另一方面也是因为GUI操作和命令行操作之间存在有巨大的差异(毕竟相较于命令行而言,GUI距离操作系统核心更“远”)。

然而混乱并不代表本次的工作是没有价值的,不管具体表现如何,一些操作的判准仍不失一般性。此外,我们也一直在强调,时间规则仅仅只能作为辅助判准而非唯一判准,对一些具体操作的判断仍需查看事件日志、USN日志、注册表、跳转列表等多处存储的信息才能下结论。

(本文所得结论仅为本机测试结果,不代表官方结果,过程中可能因本人疏漏而产生一定的差错,因此不保证一般性及可复现性。本文旨在提供一种进行研究的思路,具体结论请以自行探究所得结论为准。)

8

关于exFAT文件系统

exFAT(Extended File Allocation Table File System,即扩展文件分配表),是Microsoft在Windows Embeded 5.0以上(包括Windows CE 5.0、6.0、WindowsMobile5、6、6.1)中引入的一种适合于闪存的文件系统,是为了解决FAT32等不支持4G及更大的文件的问题而推出的。

对于闪存而言(如U盘),NTFS文件系统并不适合使用(NTFS是采用“日志式”的文件系统,需要记录详细的读写操作,频繁的读写操作比较伤闪盘芯片,同时也会耗费过多资源),而exFAT更为适用。一般而言,exFAT文件系统的适用对象为大于32GB的U盘、SD卡等。

因此,exFAT只是一个适用于闪存的文件系统,是既有FAT32的轻便、不需要耗损太多的效能及记忆体来处理文件运作,又有类似NTFS的CAL存取控制机制的一种折中的方案。

关于exFAT文件系统,我不再进行测试,感兴趣的读者可以按照这个流程自行进行测试。

关于我

ABOUT ME

嗨,这里是七腿蟹的小窝,我是又蠢又笨但很努力在学习的七腿蟹,你可以叫我阿七。我喜欢学习很多新奇的知识,然后做些笔记;我相信每一份知识都是有用的,尽管可能不是现在。不妨点个“关注”,我们一起来学习吧!

如果觉得文章对你有帮助的话,请不要忘记分享、点赞、点击“在看”哟~

如果想聊天的话,也可以把我当作树洞在后台跟我倾诉吖,我一定会认真倾听的!

(由于微信公众号的推送机制调整,可能会出现读者未能及时收到推送的情况,建议隔一段时间点进来看看有没有新内容更新哦~)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值