Restoring file dates with the Everything.db possible?

If you are experiencing problems with "Everything", post here for assistance.
Post Reply
Dereks10
Posts: 12
Joined: Thu Dec 17, 2020 6:45 am

Restoring file dates with the Everything.db possible?

Post by Dereks10 »

I batch edited a bunch of video files and messed up the creation dates to all be the same. I do however have a backup of a Everything.db index from a few days ago that would have all the correct dates ( if it saves those ) . How do i open an old .DB file?
void
Developer
Posts: 16752
Joined: Fri Oct 16, 2009 11:31 pm

Re: Restoring file dates with the Everything.db possible?

Post by void »

Please make sure you backup your Everything.db.

Please try the Everything database recovery tool.

Everything only indexes date modified and size information by default.
If you had index date created enabled under Tools -> Options -> Indexes then the date created information should be recoverable.
  • Launch db2efu.exe.
  • Select your Everything.db and click Open.
  • Choose a filename and click Save.
  • Open the efu file in Everything from File -> Open File List....
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Restoring file dates with the Everything.db possible?

Post by NotNull »

If Index date created was enabled, there is another possibility, next to the one @void already mentioned:
  • Copy Everything.exe and your backup Everything.db to an empty folder
  • In File Explorer, browse to this folder
  • In the address bar, type CMD and press ENTER
  • Run this command:

    Code: Select all

    Everything.exe -db Everything.db -readonly -instance CHECK
    
This opens the backup database in read-only mode, without interfering with your regular Everything.

When done, close this database (and this Everything) : Menu:File > Exit



If you have an awful lot of videos where you need to restore the creation date, let me know as that can be scripted.
(if you aren't allergic to that after your current issues)
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Restoring file dates with the Everything.db possible?

Post by NotNull »

"Script" (for others with the same issue and because I probably forget otherwise .. ):
  • Search in Everything to get a list of the files with the wrong creation date, for example "c:\my movies" ext:avi;mp4
  • Export all results as EFU filelist (for example "no panic.efu" )
  • Start PowerShell
  • CD to the folder where your "no panic.efu" is
  • Run this command:

    Code: Select all

    Import-Csv '.\no panic.efu'  | % { (gi $_.Filename).CreationTime = [datetime]::FromFileTime($_.'Date Created') }
  • Done
Dereks10
Posts: 12
Joined: Thu Dec 17, 2020 6:45 am

Re: Restoring file dates with the Everything.db possible?

Post by Dereks10 »

I really appreciate the responses. This was what i was looking for, Unfortunately for me the .DB was not before the edits :| . I guess theres no recovery for my video files because , Modified, Created, and Accessed were all permanently changed. Darn, hope someone else can benefit from this thread. Thanks again tho.
therube
Posts: 4977
Joined: Thu Sep 03, 2009 6:48 pm

Re: Restoring file dates with the Everything.db possible?

Post by therube »

A utility (hum, an ?) like recentfilesview, http://www.voidtools.com/forum/viewtopi ... 040#p34040, may (depending) be able to come up with some information on your files. Worth a shot.


http://www.denisefay.com/2010/10/31/day ... o-grammar/
Dereks10
Posts: 12
Joined: Thu Dec 17, 2020 6:45 am

Re: Restoring file dates with the Everything.db possible?

Post by Dereks10 »

NotNull wrote: Thu Dec 17, 2020 3:18 pm
If you have an awful lot of videos where you need to restore the creation date, let me know as that can be scripted.
(if you aren't allergic to that after your current issues)
Well, i happend to have an old playlist i backed up that was in order, but thats all it is and its fine for what i need. So the filelist is in the correct order, and i just need the dates changed to offset in that order. Does that make sense? Even if its by 1 minute each thats fine, as long as i can sort them by date.

Thanks for any help.

By the way its 5000 ish videos
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Restoring file dates with the Everything.db possible?

Post by NotNull »

It has nothing to do with Everything, but I decided to help you anyway, as changing the dates of 5000 files by hand is just ... inhumane :)

If I understand correctly, you would give a startdate, let's say 2020-01-01 00:01, and you want the next video to have date 2020-01-01 00:02 and so on?
Yes, that is certainly possible (estimated: 4 lines of code).


But before that, you might be able to get the original video date / time from somewhere else. Worth a try, isn't it?
Here's how:

- download the stand-alone Windows executable from https://exiftool.org/
(currently Windows Executable: exiftool-12.12.zip (6.3 MB)
- Extract exiftool(-k).exe somewhere on your system (suggestion: dsektop)
- drag and drop one of your videofiles on exiftool(-k).exe
- analyze the output
- Is the original date in the output?
(EDIT: try it with a couple of other video files too)

If that is the case: please post the entire output here
If that is not the case, please post the first 10 lines of your playlist file, so I can write something.

Instead of posting here, you can also send it to me as a personal message (the contact "balloon" under my user information).
Dereks10
Posts: 12
Joined: Thu Dec 17, 2020 6:45 am

Re: Restoring file dates with the Everything.db possible?

Post by Dereks10 »

NotNull wrote: Sun Dec 20, 2020 7:35 pm It has nothing to do with Everything, but I decided to help you anyway, as changing the dates of 5000 files by hand is just ... inhumane :)
If I understand correctly, you would give a startdate, let's say 2020-01-01 00:01, and you want the next video to have date 2020-01-01 00:02 and so on?
Yes, that is certainly possible (estimated: 4 lines of code).
If that is the case: please post the entire output here
If that is not the case, please post the first 10 lines of your playlist file, so I can write something.
Instead of posting here, you can also send it to me as a personal message (the contact "balloon" under my user information).

Thanks man!
I cant get that tool to work consistently. But its more the order of the files than the dates that i care about.
Yes correct on the dates that would be fine. I just need to be able to rearrange my files and then get them back into chrono order. Im currently working with Potplayers playlist editor and if i make a mistake i have to start over. Or save every 5 seconds cause ill never be able to sort by date.
I cant turn a txt file into a EFU for everything or i could fix myself. It sounds like its possible through a csv file but i never could get it. I made it using filelist creater from https://www.sttmedia.com/filelistcreator and followed the guidelines in the support but..no luck.
Here is a tiny example of my list. cut from the middle to show the multiple drives throughout.

this x5000

C:\Users\codym\Desktop\COPYCUSTOM\parking.lot49.10102019.mp4
C:\Users\codym\Desktop\COPYCUSTOM\parking.lot49.10112019.mp4
C:\Users\codym\Desktop\COPYCUSTOM\stationaryside21.erics.199.mp4
E:\basement299.mp4
E:\basement298.mp4
D:\OlderBideos\archived201901.mp4
D:\OlderBideos\archived201902.mp4
C:\Users\codym\Desktop\COPYCUSTOM\stationaryside21.erics.198.mp4
D:\OlderBideos\archived2019completed.mp4
E:\roof.siderail.1.201.mp4
E:\roof.siderail.1.200.mp4
E:\basement297.mp4
E:\basement296.mp4
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Restoring file dates with the Everything.db possible?

Post by NotNull »

Dereks10 wrote: Mon Dec 21, 2020 11:59 am and followed the guidelines in the support but..no luck.
I don't remember posting guidelines to handle your playlist? (especially since I didn't know the structure of that playlist).

I asked for the first 10 lines because quite often the first couple of lines are different from the rest (just like EFU files).
So I assume tehre is no special header in your playlist file (as you would have mentioned that).



Step 1: Check if all files that are in the list are on the system too.
  • Create a new folder somewhere on your system
  • Make a copy of your playlist and put it in the empty folder. Name it playlist.txt
  • In File Explorer, browse to this folder.
  • In the address bar, type
    powershell
    and press ENTER
  • Run this command:

    Code: Select all

    gc  .\playlist.txt | % { if  ( (Test-Path $_ ) -eq $false )  { $_} }
    
This will report all files that are in playlist.txt, but are not/ no longer on disk.

How many files are missing (rough estimation)
Dereks10
Posts: 12
Joined: Thu Dec 17, 2020 6:45 am

Re: Restoring file dates with the Everything.db possible?

Post by Dereks10 »

NotNull wrote: Mon Dec 21, 2020 12:56 pm
Dereks10 wrote: Mon Dec 21, 2020 11:59 am This will report all files that are in playlist.txt, but are not/ no longer on disk.

How many files are missing (rough estimation)
Ok it ran through and reported nothing. I have been editing the paths to make sure they are correct as Potplayer will tell me if a file is missing because it will have a empty duration. Im positive there all there.
Dereks10
Posts: 12
Joined: Thu Dec 17, 2020 6:45 am

Re: Restoring file dates with the Everything.db possible?

Post by Dereks10 »

Well, I'm certain they are all there but this command, does the same routine for every playlist i have. Runs through listing all the files. then stops waiting for a command.
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Restoring file dates with the Everything.db possible?

Post by NotNull »

Dereks10 wrote: Mon Dec 21, 2020 3:48 pm Ok it ran through and reported nothing.
That is good news! Otherwise there would be gaps in the new filedates (and error messages from missing files).
Would not be a problem, though; just some extra checks to be on the safe side.


Anyway, the following will give the first file in your playlist a new date ( date = creation date AND date modified) of 1 january 2020 at 5 minutes past midnight.
Teh second one will have the same date, but 5 minutes later; the 3rd one 10 minutes later, etcetera
You can change this part to your liking, but I don't know whet happens around leap years and around daylight saving times (when the time jumps an hour forwards or backwards)

The good news: you can always re-run it with new settings.
$ThisTime = get-date "2020-01-01T00:05"
$delta = New-TimeSpan -Minutes 5


The steps:
  1. Copy the code below (below ChangeDates) somewhere on your system
  2. Change the settings to your liking
  3. Copy the new code to the clipboard
  4. In File Explorer, browse to the folder where you put your playlist.txt
  5. In the address bar, type
    powershell
    and press ENTER
  6. Paste the new code in the PowerShell window
  7. If it doesn't start right away, press ENTER
  8. Wait until 5000 files get a new date
  9. Report results here
ChangeDates

Code: Select all

$ThisTime = get-date "2020-01-01T00:05"
$delta = New-TimeSpan -Minutes 5

gc .\playlist.txt | % {
	(gi $_).CreationTime = $ThisTime
	(gi $_).LastWriteTime = $ThisTime
	$ThisTime += $delta
}
Dereks10
Posts: 12
Joined: Thu Dec 17, 2020 6:45 am

Re: Restoring file dates with the Everything.db possible?

Post by Dereks10 »

NotNull wrote: Mon Dec 21, 2020 4:17 pm
[*]Report results here
It gives these 2 errors repeating the entire span

The property 'LastWriteTime' cannot be found on this object. Verify that the property exists and can be set.
At line:3 char:1
+ (gi $_).LastWriteTime = $ThisTime
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : PropertyNotFound



The property 'CreationTime' cannot be found on this object. Verify that the property exists and can be set.
At line:2 char:1
+ (gi $_).CreationTime = $ThisTime
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : PropertyNotFound
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Restoring file dates with the Everything.db possible?

Post by NotNull »

Can you post the code that you pasted in the PowerShell window?
Dereks10
Posts: 12
Joined: Thu Dec 17, 2020 6:45 am

Re: Restoring file dates with the Everything.db possible?

Post by Dereks10 »

$ThisTime = get-date "2020-01-01T00:05"
$delta = New-TimeSpan -Minutes 5

gc .\playlist.txt | % {
(gi $_).CreationTime = $ThisTime
(gi $_).LastWriteTime = $ThisTime
$ThisTime += $delta
}
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Restoring file dates with the Everything.db possible?

Post by NotNull »

That's perfect.

I need to think about this.
Should just work (tested your commands a second ago).

In the meantime, you could try the same with a playlist.txt with just 5 lines/files and play close attention to the errors that are reported.
Dereks10
Posts: 12
Joined: Thu Dec 17, 2020 6:45 am

Re: Restoring file dates with the Everything.db possible?

Post by Dereks10 »

NotNull wrote: Mon Dec 21, 2020 7:38 pm That's perfect.

I need to think about this.
Should just work.
Hold on a second it did a lot. Is this thing going to run ultra slow? I got an 8600k cpu 16gb ram. Anyways I stepped away for a minute came back and responded to you stepped away again and then I went to work on my list and it was all messed up and I looked at the times and it was just randomized some some files had it and some didn't. I think this is my fault mainly because I ran the script with the playlist stuff still open and a few other programs using the files. I'm going to shut everything down reboot and then try it without touching anything and I'll get back with you.
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Restoring file dates with the Everything.db possible?

Post by NotNull »

Setting a new date for 5000 files took 15,4 seconds on a RAM disk (but a very slow computer).

Typically Harddisks (HDD) are 50 times slower, so would take around 750 seconds, let's say 12 minutes.
If some of these files are on your network, it will take even longer.

(very rough estimation as there are only 2 files per disk involved that need to be changed (Windows' address book of files) and those might be cached or otherwise already in RAM)
Dereks10
Posts: 12
Joined: Thu Dec 17, 2020 6:45 am

Re: Restoring file dates with the Everything.db possible?

Post by Dereks10 »

NotNull wrote: Mon Dec 21, 2020 8:52 pm Setting a new date for 5000 files took 15,4 seconds on a RAM disk (but a very slow computer).
This works. My first runs i had items open that might have interfered with the write process or something. After closing out and rebooting , i ran it and it finished in less than 30 seconds. Good work my friend i do appreciate it. Since your script was written where the dates ascend, the only thing i had to do was reverse the order of my playlist, and then run your scriot so the old files get the oldest dates. ( That way new files dont get grouped with the old files ya know ). Hey If u got btc or something i throw u a tip.
Alright take care.
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Restoring file dates with the Everything.db possible?

Post by NotNull »

Dereks10 wrote: Tue Dec 22, 2020 9:51 amThis works.
That is a relief!
Glad you got it all figured out.
Dereks10 wrote: Tue Dec 22, 2020 9:51 am i throw u a tip.
Please don't. I do this for fun (and to practice my English and typing skills).
If you feel that you *have to*... that will go over ;)
(and if not: donate to Everything. @void will appreciate that)

Dereks10 wrote: Tue Dec 22, 2020 9:51 am the only thing i had to do was reverse the order of my playlist, and then run your scriot so the old files get the oldest dates.
If needed, a Powershell command for that:

Code: Select all

$A = (gc '.\playlist.txt') ; [array]::Reverse( $A ) ; Set-Content .\reversePlaylist.txt $A
Enjoy!
raccoon
Posts: 1017
Joined: Thu Oct 18, 2018 1:24 am

Re: Restoring file dates with the Everything.db possible?

Post by raccoon »

Dereks10 wrote: Sun Dec 20, 2020 5:36 pm So the filelist is in the correct order, and i just need the dates changed to offset in that order. Does that make sense? Even if its by 1 minute each thats fine, as long as i can sort them by date.
Nirsoft also has a tool called BulkFileChanger (https://www.nirsoft.net/utils/bulk_file_changer.html) that can change all of the file's dates and times and add to them an incrementing value of seconds or minutes to give your files an order of progression. But first, you'll have to give your files a progression order for the program to sort them accordingly. You can use Everything (or other tools) to bulk rename your files, padding them with a numeric value.

Perhaps you just want to rename your files instead from 00001 to 5000 so this doesn't happen again.
Dereks10
Posts: 12
Joined: Thu Dec 17, 2020 6:45 am

Re: Restoring file dates with the Everything.db possible?

Post by Dereks10 »

raccoon wrote: Tue Dec 22, 2020 9:30 pm Nirsoft also has a tool called BulkFileChanger But first, you'll have to give your files a progression order for the program to sort them accordingly. You can use Everything (or other tools) to bulk rename your files, padding them with a numeric value.

Perhaps you just want to rename your files instead from 00001 to 5000 so this doesn't happen again.
Yea nirsoft has some excellent tools, i had not tried bulkfilechanger but use alot of there utils. But for me the files were actually in progressive order when i saved the playlist at that time. It was the only thing i had to go by. But playlist files are not very compatible with alot of programs to open as a list. Potplayer allowed me to copy the full filepath and past it into text though. Easy up to this point but now i couldnt find a program that can load a .txt list of filepaths and allow me to select them as if i was in File Explorer. That what i was explaining earlier that i couldnt get my txt file to convert into .efu format. Still would like to know if thats possible though.
Thanks for input!
raccoon
Posts: 1017
Joined: Thu Oct 18, 2018 1:24 am

Re: Restoring file dates with the Everything.db possible?

Post by raccoon »

EFU files are just simple CSV files. Here's what you do.

Select a group of files you wish to study. Go to File > Export > choose EFU from the Type list and save. Repeat an choose CSV from the type list and save. Rename the .EFU file to .EFU.CSV, and then open both CSV files into your spreadsheet editor of choice (ie, LibreOffice). The differences are subtle and you can certainly deduce the file created/modified timestamp formats are of the Windows Filetime variety and find a converter that does the conversion for you.

Manually edit the .EFU.CSV to your heart's content. Rename it back to .EFU and then load it into Everything.

We might ask Void if he could add support for opening the EXPORT.CSV format as well since it uses more human-readable columns that are easier to edit.
NotNull
Posts: 5461
Joined: Wed May 24, 2017 9:22 pm

Re: Restoring file dates with the Everything.db possible?

Post by NotNull »

If your playlist wasn't that long (5000 entries!) the common way would be:
- In Everything, go to Menu:Search > Advanced Search
- Browse to the end where you find Search for a list of file names:
- Press the Browse button and select your playlist.txt
- Notice that now the matching field gets filled with the filenames from your playlist.txt.
- Press the OK button.
- Done.

Now you can export this as an EFU file ( Menu:File > Export )



But as your playlist is too large [1] : "Plan B" :
  • Open your playlist in a texteditor like Notepad
  • Add this as the first line:

    Code: Select all

    Filename,Size,Date Modified,Date Created,Attributes
    
    Now your file should look something like this:
    Filename,Size,Date Modified,Date Created,Attributes
    T:\changetime\5000\test5000 1014.zip
    T:\changetime\5000\test5000 1015.zip
    T:\changetime\5000\test5000 1016.zip
  • Save the file as playlist.efu
  • In Everything, start the Filelist editor (Menu:Tools > File List Editor )
  • In the Filelist editor: Menu:File > Open
  • Open the playlist.efu file you just saved
  • Wait until Everything is done processing the list
  • Select all files (press CTRL+A)
  • Menu:Edit >Read Extended Information (or press Ctrl+E )
  • Check the statusbar to see when processing his is done
  • Save the file
  • Done.


raccoon wrote: Wed Dec 23, 2020 2:27 am the file created/modified timestamp formats are of the Windows Filetime variety and find a converter that does the conversion for you.

Code: Select all

= A1 / ( 8,64 * 100000000000 ) - 109205
And format the cel as date.


[1] Don't know the exact limits
horst.epp
Posts: 1447
Joined: Fri Apr 04, 2014 3:24 pm

Re: Restoring file dates with the Everything.db possible?

Post by horst.epp »

Dereks10 wrote: Wed Dec 23, 2020 1:27 am
raccoon wrote: Tue Dec 22, 2020 9:30 pm Nirsoft also has a tool called BulkFileChanger But first, you'll have to give your files a progression order for the program to sort them accordingly. You can use Everything (or other tools) to bulk rename your files, padding them with a numeric value.

Perhaps you just want to rename your files instead from 00001 to 5000 so this doesn't happen again.
Yea nirsoft has some excellent tools, i had not tried bulkfilechanger but use alot of there utils. But for me the files were actually in progressive order when i saved the playlist at that time. It was the only thing i had to go by. But playlist files are not very compatible with alot of programs to open as a list. Potplayer allowed me to copy the full filepath and past it into text though. Easy up to this point but now i couldnt find a program that can load a .txt list of filepaths and allow me to select them as if i was in File Explorer. That what i was explaining earlier that i couldnt get my txt file to convert into .efu format. Still would like to know if thats possible though.
Thanks for input!
Total Commander can use a text file as base for a search. From the help:
Search in: Here you can enter one or more starting directories, separated by ";". You can also start the search inside an archive.
You can enter the name of a text file (ANSI, UTF-8 or UTF-16, the latter two with BOM) containing a list of files and directories to be searched, in the form @c:\path\filelist.txt. The file must contain one file/directory name per line, either an absolute path, or relative to the location of the list file. The text file also supports wildcards and regular expressions. The "Search for" field is ignored when searching from list.
Post Reply