【发布时间】:2012-08-24 00:15:53
【问题描述】:
我正在制作一个简单的程序,用于复制自上次运行以来创建或修改的文件。存储程序本身上次运行时间的最佳方式是什么?我在想它可以有一个文本文件来存储日期和时间,但是有没有一种不需要外部文件的方法? Windows 有“最后修改”日期,但我不知道“最后使用”日期。
【问题讨论】:
-
通常的方法是创建一个注册表项来存储您的应用程序的信息(在
HKEY_CURRENT_USER中,因为最后一次运行可能因用户而异),或者在用户的%APPDATA%中的文件中文件夹。 -
如果我确实将它存储在一个文件中,与读取和写入包含程序上次时间的字符串相比,仅任意修改文件并检查文件的最后修改日期会更有效吗跑吗?
-
相对于程序的其余部分,您打开、写入时间戳和关闭文件所花费的时间是微不足道的。编写人类可读的和机器可读的东西。
-
@Celeritas 是什么让您担心简单日期比较的性能。另请注意,解码/编码字符串比直接使用它更好。
-
你想“任意”修改什么文件?文本文件本身?设置文件的最后修改标记比保存带有日期的文件更难,而且没有人说“包含时间的字符串”。二进制文件很容易工作,并且保存相同数据所需的存储空间更少。
标签: c++ filesystems last-modified