我正在使用以下方法在 Android 应用程序中创建文件:
FileOutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE);
fos.write(data);
fos.flush();
fos.close();
然后我尝试进行一些清理,因此我将上次修改日期与某个阈值进行比较,但比较显示文件的上次修改日期是明天的某个时间。请记住,当我说明天时,这是相对于今天(文件修改日期)而言的......无论您正在阅读本文的哪一天。
所以基本上,如果我今天创建文件,并检查文件的上次修改日期,它会说它是明天最后修改的。
这是 Java 正在做的事情,还是 Android 正在做的事情,还是我正在做的事情?
我正在研究类似的问题(最后修改日期有时会在不触及文件的情况下进行更改)但找不到解决方法。
我创建了一个创建文件的测试,存储由上一次更改函数并在对手机执行一些操作后再次检查该值(我的设备是Galaxy S
).
我找到上一次更改工作时使用内部缓存,可以通过启用/禁用来清除该缓存USB
模式(如果文件打开SDCard
)。我也认为这Cache
一段时间后自动清除。如果缓存已被清除,则该函数读取存储在文件系统中的实际值。
如果您更改设备上的时区并清除cache
then 上一次更改函数将返回另一个时间(差异取决于新时区,例如,如果从 GMT+3 更改为 GMT+4,则差异为 1 小时)。
这个问题是100%可重现的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)