If Thou Stabbeth at Time, Doth it Bleed? (Revisited)
Posted: 2011 Oct 14, 12:13
Eventually, as the adage goes, given enough time all men will hang themselves - and all women (contrary to the Edith Piaf romantics) will become the authors of their own regrets. 'Tis the way of things, I fear.
In this case, the Time in question is the Modification Dates of Folder Timestamps.
So what is this silly utility anyway?
Basically it's rather simple: I got fed up with the somewhat unpredictable, unreliable, and unethical rules by which Windows decides to (not) update the Modification Dates of Folders (the average human would think it should be by when the contents were last modified, but Windows seems to think otherwise). So, I decided to write a utility to update folder modification dates based on their (and their subfolders') actual contents and apply those dates throughout the folder structure as necessary, correcting any inaccurate ones.
(To enter the GUI mode, just run the executable as-is - you only need command-line options during automation. Click the "<Base Folder>" label to select specific folders to scan, or set up a toolbar-button user command using "$F" as the parameter).
Download Link: Modifiche (Updated: 11-Sep-14, Version 2.0.1.7)
(RAR includes 32 and 64-bit EXE's, and Source Code)
What is it not?
Now, obviously what people would really like is a type of thing like FolderSize that runs in the background watching for changes and updates in real-time... well, that's a little beyond me, so this is the next best thing [Update]. One could set up a task in windows to run this (in low priority) periodically in the background and that would kind of come close - but I don't really know how someone might want to use it. If nothing else, it's amusing to run a scan on a whole drive to see just how many "inaccurate" Modification dates there are. It's designed to be used on anything from single folders to whole drives, so experiment. Simply scanning will not do anything other than display a list of suggested changes, so it's harmless. Just don't hit that other button...
Why is there one option that looks at me funny when the rest are so serious?
Yeah, well, you see there was this film once that really dug itself into the cultural lexicon...
Essentially the best po-faced translations of "There is no Dana, There is only Zuul" would be "Discard Non-verifiable Timestamps" or "Use only Absolute Content" - but when we live in a world where everything we eat is always labelled "Calcium caseinate, Sodium stearol lactylate, and Soy lecithin" (see Can you name the ingredients of a Twinkie?), sometimes you just have to go with your heart when naming options.
Look at it this way: sometimes you add a file to a folder and then delete it later... at the time, you know what the recent modification date on that folder then means... but a few weeks later when your girlfriend has complained about you hiding the condoms again, and your pride in your organisational skills has waned a bit, that date becomes somewhat meaningless as it no longer applies to any real object within it. So, you ask yourself "How could I reset everything to what they really contain?" When you just run an ordinary scan, dates are only considered on a "greater-than" basis - i.e., newest dates are always retained, even if none of the contents match them. Using the Zuul option will analyse all contents and set the dates in the tree only according to what the folders really contain (backdating the parent folders, of course), which means some times may be reset to being "older" than whatever their most recent date is now. Make sense? No? Then perhaps Zuul isn't your kind of Demon. (It should be noted that this type of scan takes longer and uses up more resources, as there's more stuff to worry about.)
Just what is "Partially Hydrogenated Vegetable Oil" anyway?
If you start fiddling with the checkboxes in the TreeView, you can (obviously) disable the changes of those things you uncheck before applying them - but if anything further up the parent (towards the root - is that "up" or "down"? I can never remember) is checked, it will still be updated with the new times - to make it accurate you'd have to exclude it, re-scan again, etc. Even though there are checkboxes on everything, it's not really meant for people to mess with too much. They are there as more as secateurs for selectively eliminating whole branches (if desired for some reason) rather than pruning single leaves.
If you want to exclude certain subfolders or even specific files themselves from being considered in a scan (and thus eliminating their timestamps from inclusion), right-click on them in the treeview and add them to the exclusions file. (This may also be done manually, by creating a file named "Exclusions.txt" in the programme's home folder, and adding whatever objects you want to it, each on its own line. Note: all Exclusion and Log files are always written in Unicode UTF8 - that silly ANSI stuff is just so 1980's.)
Why did you add food colouring to the recipe?
You'll notice certain treeview elements actually change and update out of order during the scan (and they change colour too) - don't ask what the colours mean - it's all debug stuff so I could track the date-checking visually. Look at it this way, it brightens up an otherwise dull autumnal day, doesn't it? This can be disabled, if you happen to like dull autumnal days just the way they are.
Should I eat everything on my plate like mummy always says?
Sometimes "outdated" folders will still show up as trigger elements, even though they have been deprecated by subsequent folder recursion date checking - these aren't "real" trigger objects (even though they once were), so the display on the linked-folder itself will actually be correct. If you don't understand a word of that - don't worry, you'll find that the dates should be adjusted correctly, it's just that these redundant objects remain in the display, yet serve no immediate purpose to the end result.
Would you feed this to your neighbour's cat?
I know what you're thinking... "Do I trust this guy not to accidentally banjax all my folder dates?" First of all, don't do anything silly like running it on your C drive wholly unbidden. Try it on a small subfolder in your music collection first and check that the preview shows what you think it should - then try larger structures later if you want. It's capable of processing thousands of folder-groups in one go, so take baby steps. Trust isn't built in a day, though it's so easily destroyed that I have done extensive testing to make sure this thing does what it says on the tin. Hence the reason the GUI is set up as a "Preview" and even a SafeMode is included for checking automated command-line tasks before you commit them, if you should so choose.
My tummy hurts, do I still have to go to school today?
I have noticed that some things like Firefox and Thunderbird profile folders actually seem to use their folder-dates to check the necessity of updating their installed extensions - so messing with these is not recommended. As they are generally stuffed in hidden folders anyway, one should always be careful before ticking options with wild abandon, no matter how much you may subscribe to having libertine philosophies.
Is English really your first language?
The name is supposed to mean "Modified" in Italian - but I don't know if that's true or not (not knowing Italian) - I just liked the sound of it. So when you pronounce the name, say it with that kind of Godfather accent thing, like you're sprinkling mozzarella cheese over a salad or something, and always remember that in the face of relativistic physics, all cultural stereotypes are true in one form or another.
In this case, the Time in question is the Modification Dates of Folder Timestamps.
So what is this silly utility anyway?
Basically it's rather simple: I got fed up with the somewhat unpredictable, unreliable, and unethical rules by which Windows decides to (not) update the Modification Dates of Folders (the average human would think it should be by when the contents were last modified, but Windows seems to think otherwise). So, I decided to write a utility to update folder modification dates based on their (and their subfolders') actual contents and apply those dates throughout the folder structure as necessary, correcting any inaccurate ones.
(To enter the GUI mode, just run the executable as-is - you only need command-line options during automation. Click the "<Base Folder>" label to select specific folders to scan, or set up a toolbar-button user command using "$F" as the parameter).
Download Link: Modifiche (Updated: 11-Sep-14, Version 2.0.1.7)
(RAR includes 32 and 64-bit EXE's, and Source Code)
What is it not?
Now, obviously what people would really like is a type of thing like FolderSize that runs in the background watching for changes and updates in real-time... well, that's a little beyond me, so this is the next best thing [Update]. One could set up a task in windows to run this (in low priority) periodically in the background and that would kind of come close - but I don't really know how someone might want to use it. If nothing else, it's amusing to run a scan on a whole drive to see just how many "inaccurate" Modification dates there are. It's designed to be used on anything from single folders to whole drives, so experiment. Simply scanning will not do anything other than display a list of suggested changes, so it's harmless. Just don't hit that other button...
Why is there one option that looks at me funny when the rest are so serious?
Yeah, well, you see there was this film once that really dug itself into the cultural lexicon...
Essentially the best po-faced translations of "There is no Dana, There is only Zuul" would be "Discard Non-verifiable Timestamps" or "Use only Absolute Content" - but when we live in a world where everything we eat is always labelled "Calcium caseinate, Sodium stearol lactylate, and Soy lecithin" (see Can you name the ingredients of a Twinkie?), sometimes you just have to go with your heart when naming options.
Look at it this way: sometimes you add a file to a folder and then delete it later... at the time, you know what the recent modification date on that folder then means... but a few weeks later when your girlfriend has complained about you hiding the condoms again, and your pride in your organisational skills has waned a bit, that date becomes somewhat meaningless as it no longer applies to any real object within it. So, you ask yourself "How could I reset everything to what they really contain?" When you just run an ordinary scan, dates are only considered on a "greater-than" basis - i.e., newest dates are always retained, even if none of the contents match them. Using the Zuul option will analyse all contents and set the dates in the tree only according to what the folders really contain (backdating the parent folders, of course), which means some times may be reset to being "older" than whatever their most recent date is now. Make sense? No? Then perhaps Zuul isn't your kind of Demon. (It should be noted that this type of scan takes longer and uses up more resources, as there's more stuff to worry about.)
Just what is "Partially Hydrogenated Vegetable Oil" anyway?
If you start fiddling with the checkboxes in the TreeView, you can (obviously) disable the changes of those things you uncheck before applying them - but if anything further up the parent (towards the root - is that "up" or "down"? I can never remember) is checked, it will still be updated with the new times - to make it accurate you'd have to exclude it, re-scan again, etc. Even though there are checkboxes on everything, it's not really meant for people to mess with too much. They are there as more as secateurs for selectively eliminating whole branches (if desired for some reason) rather than pruning single leaves.
If you want to exclude certain subfolders or even specific files themselves from being considered in a scan (and thus eliminating their timestamps from inclusion), right-click on them in the treeview and add them to the exclusions file. (This may also be done manually, by creating a file named "Exclusions.txt" in the programme's home folder, and adding whatever objects you want to it, each on its own line. Note: all Exclusion and Log files are always written in Unicode UTF8 - that silly ANSI stuff is just so 1980's.)
Why did you add food colouring to the recipe?
You'll notice certain treeview elements actually change and update out of order during the scan (and they change colour too) - don't ask what the colours mean - it's all debug stuff so I could track the date-checking visually. Look at it this way, it brightens up an otherwise dull autumnal day, doesn't it? This can be disabled, if you happen to like dull autumnal days just the way they are.
Should I eat everything on my plate like mummy always says?
Sometimes "outdated" folders will still show up as trigger elements, even though they have been deprecated by subsequent folder recursion date checking - these aren't "real" trigger objects (even though they once were), so the display on the linked-folder itself will actually be correct. If you don't understand a word of that - don't worry, you'll find that the dates should be adjusted correctly, it's just that these redundant objects remain in the display, yet serve no immediate purpose to the end result.
Would you feed this to your neighbour's cat?
I know what you're thinking... "Do I trust this guy not to accidentally banjax all my folder dates?" First of all, don't do anything silly like running it on your C drive wholly unbidden. Try it on a small subfolder in your music collection first and check that the preview shows what you think it should - then try larger structures later if you want. It's capable of processing thousands of folder-groups in one go, so take baby steps. Trust isn't built in a day, though it's so easily destroyed that I have done extensive testing to make sure this thing does what it says on the tin. Hence the reason the GUI is set up as a "Preview" and even a SafeMode is included for checking automated command-line tasks before you commit them, if you should so choose.
My tummy hurts, do I still have to go to school today?
I have noticed that some things like Firefox and Thunderbird profile folders actually seem to use their folder-dates to check the necessity of updating their installed extensions - so messing with these is not recommended. As they are generally stuffed in hidden folders anyway, one should always be careful before ticking options with wild abandon, no matter how much you may subscribe to having libertine philosophies.
Is English really your first language?
The name is supposed to mean "Modified" in Italian - but I don't know if that's true or not (not knowing Italian) - I just liked the sound of it. So when you pronounce the name, say it with that kind of Godfather accent thing, like you're sprinkling mozzarella cheese over a salad or something, and always remember that in the face of relativistic physics, all cultural stereotypes are true in one form or another.