meganz / MEGAsync

Easy automated syncing between your computers and your MEGA Cloud Drive
Other
1.62k stars 279 forks source link

MEGAsync is changing the timestamp on desktop.ini files for no reason at every startup #777

Open Eldaw opened 1 year ago

Eldaw commented 1 year ago

As of a recent version of the Windows MEGAsync client (I believe since v4.8.5), MEGAsync is touching the timestamp on the desktop.ini file which resides in each sync folder. Not changing the contents at all, just changing the timestamp to the current time. I've got other software monitoring/syncing some of the same folders on my system as well, and this causes mismatches to be identified (due to the changing timestamps on the desktop.ini files). There's no reason why MEGAsync should be updating these timestamps every time MEGAsync is started. And it never used to be this way. Please make it stop.

mattw-mega commented 1 year ago

Hi @Eldaw , It won't be MEGAsync doing that. Actually MEGAsync ignores those files entirely due to their attributes: system+hidden. And the only way it could touch them would be to try to download a file of the same name into that folder, if somehow a desktop.ini ended up in the MEGA folders. It's probably Explorer itself updating those files. thanks

Eldaw commented 1 year ago

@mattw-mega It only started happening after upgrading to a very recent version of MEGAsync. And to test and make sure it is definitely MEGAsync that is responsible, with MEGAsync not running I took note of the timestamps on the desktop.ini files in the synced folders, started MEGAsync, and then examined the timestamps again. My findings were that the timestamps were updated to the current time (i.e. the time of MEGAsync starting). In fact, while typing this I've just done the test again: I've started MEGAsync and noticed all the desktop.ini files in all the synced folders getting their timestamps updated immediately after MEGAsync started. This is 100% reproducible, every time I start MEGAsync.

It seems you're not aware (because you claim MEGAsync simply ignores these files), but MEGAsync actually adds some metadata to the desktop.ini files in each synced folder. It used to only do this the first time a synced folder is added to MEGAsync, but clearly MEGAsync is touching the desktop.ini files at every startup now, even when the text inside those desktop.ini files doesn't need to change. For your information, metadata such as the following is added to the desktop.ini files by MEGAsync:

[.ShellClassInfo]
InfoTip=MEGA synced folder
IconResource=C:\Users\Username\AppData\Local\MEGAsync\MEGAsync.exe,3

I hope you can look further into this, as your understanding that MEGAsync doesn't touch these files is simply not correct I'm afraid.

mattw-mega commented 1 year ago

Hi @Eldaw , thanks for following up. I have been keeping an eye on this in my own system to double check, and I did see the modification date change. It's not the sync logic updating it, it's basically the GUI layer ensuring that sync folders have an icon shown, not by directly editing that file but by making a SHGetSetFolderCustomSettings() call for each sync on startup. We only need to do that when a sync is first set up though, and we have an internal ticket already for a highly related issue, which is also due to executing platform related setup steps for all syncs on startup rather than just on creation. I'll add this to that ticket and it should be addressed in the near future. thanks

castigo86 commented 1 year ago

Sorry to revive this post, but the issue is still present in 4.8.8.

It reverts my custom icon to the built-in icon every time: definitely not a major issue, but it is related to the original post.

castigo86 commented 1 year ago

The issue is unfortunately still present in 4.9.1.