I have the following photo folder structure on my disk:

'My Pictures'
+--> 'Photos'
     +--> YYYY
          +--> YYYY_MM_DD


  • YYYY denotes the year, like 2011
  • MM denotes the month, like 04
  • DD denotes the day, like 27

However, when I import photos using Picasa, it asks for a folder and places all the photos inside that folder. As of now, I have failed to make it place the imported photos into the folder structure of my liking.

Is this possible at all in Picasa?


I couldn't get Picasa to do this, and ended up using the wonderful ExifTool. I quote:

exiftool -r -d %Y/%m/%d/image_%H%M%S.%%e "-filename<filemodifydate" DIR

Recusively rename all images in DIR and any contained subdirectories to the form image_HHMMSS.EXT (where 'ext' is the original file extension), and move them into a new directory hierarchy based on date of file modification, with path names like 2006/03/27/image_105859.jpg.


An alternative to Sam's solution, if you're prepared to dabble in a bit of vbs is to paste this into a .vbs file, editing the first two lines as appropriate, (this actually saves into a 2007/2007-01/2007-01-24 structure):

trgFolder = "C:\Users\Benjol\Pictures\Current"
srcFolder = "J:\DCIM"

set fso = createObject ("Scripting.FileSystemObject")

set fld = fso.GetFolder(srcFolder)
for each fldr in fld.SubFolders
  for each fil in fldr.files
    newFolder = CheckFolder(fil.DateCreated)
    if fso.FileExists(newFolder & "\" & fil.Name) then
      Call fil.Copy (newFolder & "\cpy_" & fil.Name)
      Call fil.Copy (newFolder & "\" & fil.Name)
    end if
    'Delete original
    Call fil.Delete(true)


Call Msgbox ("Done copying folders, you can now disconnect " & srcFolder)

Function CreateFolder(trg)
  if not fso.FolderExists(trg) then
    Call fso.CreateFolder(trg)
  end if
  CreateFolder = trg
End Function

Function CheckFolder(dt)
  m=Right("0" & Month(dt), 2)
  d=Right("0" & Day(dt), 2)
  CheckFolder = CreateFolder(trgFolder & "\" & y)
  CheckFolder = CreateFolder(CheckFolder & "\" & y & "-" & m)
  CheckFolder = CreateFolder(CheckFolder & "\" & y & "-" & m & "-" & d)
End Function

The usual disclaimers apply...

  • How do you run VBS on Mac? – mark Aug 6 '11 at 7:01
  • @mark, I don't :) – Benjol Aug 23 '11 at 11:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.