Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1101
  • Last Modified:

How to create a list with filename and "Date Picture Taken"

Is there any simple method to export (create) a list with filename and "Date Picture Taken" within a directory?
0
Hoogendoorn
Asked:
Hoogendoorn
  • 5
  • 5
1 Solution
 
BrandonGalderisiCommented:
Something like this maybe?

Just save it as a VBS in the directory you want to scan.
Option Explicit
Dim fso, objShell, objFolder, tFolder, tFile
Dim currentFolder
Set fso=CreateObject("scripting.filesystemobject")
currentFolder = fso.GetAbsolutePathName(".")&"\"
Set tFolder = fso.getfolder(CurrentFolder)
Set objShell = CreateObject ("Shell.Application") 
Set objFolder = objShell.Namespace(Currentfolder) 
 
For each tFile in tFolder.files
If UCase(FileExt(tFile.name)) = "JPG" Then
     wscript.echo objFolder.GetDetailsOf(objFolder.Parsename(tFile.name), 0) 
     wscript.echo objFolder.GetDetailsOf(objFolder.Parsename(tFile.name), 10) 
     wscript.echo objFolder.GetDetailsOf(objFolder.Parsename(tFile.name), 24) 
     wscript.echo objFolder.GetDetailsOf(objFolder.Parsename(tFile.name), 25) 
 
'Extended file properties:
'0 Name 
'1 Size 
'2 Type 
'3 Date Modified 
'4 Date Created 
'5 Date Accessed 
'6 Attributes 
'7 Status 
'8 Owner 
'9 Author 
'10 Title 
'11 Subject 
'12 Category 
'13 Pages 
'14 Comments 
'15 Copyright 
'16 Artist 
'17 Album Title 
'18 Year 
'19 Track Number 
'20 Genre 
'21 Duration 
'22 Bit Rate 
'23 Protected 
'24 Camera Model 
'25 Date Picture Taken 
'26 Dimensions 
'27 
'28 
'29 Episode Name 
'30 Program Description 
'31 
'32 Audio sample size 
'33 Audio sample rate 
'34 Channels 
'35 Company 
'36 Description 
'37 File Version 
'38 Product Name 
'39 Product Version 
'40 Keywords 
End If
 
Next
 
Set fso=Nothing
Set tFolder = Nothing
Set tFile = Nothing
Set objFolder = Nothing
 
Function FileExt(FileName)
FileExt = Right(FileName, Len(FileName)-instrrev(FileName,"."))
End Function

Open in new window

0
 
HoogendoornAuthor Commented:
Thanks for your effort, Brandon. Unfortunately, I am an 'old' guy, only familiar with Fortran programming. Could you make to the script so, that it saves the file properties (including filename) to a file?
0
 
jcimarronCommented:
Hoogendoorn--Possibly Karens Directory Printer
http://www.karenware.com/powertools/ptdirprn.asp
Very configurable.
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
BrandonGalderisiCommented:
This will output to a file called PictureInfo.txt in the same directory.
Option Explicit
Dim fso, objShell, objFolder, tFolder, tFile, toWrite, outFile
Dim currentFolder
Set fso=CreateObject("scripting.filesystemobject")
currentFolder = fso.GetAbsolutePathName(".")&"\"
Set tFolder = fso.getfolder(CurrentFolder)
Set objShell = CreateObject ("Shell.Application") 
Set objFolder = objShell.Namespace(Currentfolder) 
Set outFile = fso.createtextFile(CurrentFolder & "PictureInfo.txt",1,1)
 
 
For each tFile in tFolder.files
If UCase(FileExt(tFile.name)) = "JPG" Then
     toWrite = "File Name:" & objFolder.GetDetailsOf(objFolder.Parsename(tFile.name), 0)  & ";" & _
               "Date Taken:" & objFolder.GetDetailsOf(objFolder.Parsename(tFile.name), 25)  & ";"
outFile.writeline toWrite
     
'Extended file properties:
'0 Name 
'1 Size 
'2 Type 
'3 Date Modified 
'4 Date Created 
'5 Date Accessed 
'6 Attributes 
'7 Status 
'8 Owner 
'9 Author 
'10 Title 
'11 Subject 
'12 Category 
'13 Pages 
'14 Comments 
'15 Copyright 
'16 Artist 
'17 Album Title 
'18 Year 
'19 Track Number 
'20 Genre 
'21 Duration 
'22 Bit Rate 
'23 Protected 
'24 Camera Model 
'25 Date Picture Taken 
'26 Dimensions 
'27 
'28 
'29 Episode Name 
'30 Program Description 
'31 
'32 Audio sample size 
'33 Audio sample rate 
'34 Channels 
'35 Company 
'36 Description 
'37 File Version 
'38 Product Name 
'39 Product Version 
'40 Keywords 
End If
 
Next
outFile.close
Set outFile=Nothing
Set fso=Nothing
Set tFolder = Nothing
Set tFile = Nothing
Set objFolder = Nothing
 
Function FileExt(FileName)
FileExt = Right(FileName, Len(FileName)-instrrev(FileName,"."))
End Function

Open in new window

0
 
HoogendoornAuthor Commented:
Unfortunately Karen's Directory Printer does not cover JPG-attributes.
0
 
BrandonGalderisiCommented:
May want to change:

If UCase(FileExt(tFile.name)) = "JPG" Then

To:

If UCase(FileExt(tFile.name)) = "JPG" or UCase(FileExt(tFile.name)) = "JPEG" Then
0
 
HoogendoornAuthor Commented:
This seems OK, Brandon. One more request: is it also possible to add the seconds to the time?
0
 
BrandonGalderisiCommented:
If it's not there, then no.  Most camera's don't have the concept of seconds anyway.
0
 
HoogendoornAuthor Commented:
Mmmm, when I look in File Info in Adobe Photoshop Elements the seconds are also displayed, so they should be there.
0
 
BrandonGalderisiCommented:
"If it's not there"

obviously  shell.application.Namespace.GetDetailsOf doesn't display that though.
0
 
HoogendoornAuthor Commented:
Well, that's a pitty. Anyway, I accept the second VBS you supplied as solution. Tanks.
0

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 5
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now