1

I have the following photo folder structure on my disk:

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

Where:

  • 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?

2 Answers 2

1

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

Recursively 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.

0

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)
    else
      Call fil.Copy (newFolder & "\" & fil.Name)
    end if
    'Delete original
    Call fil.Delete(true)
  next

next

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)
  y=Year(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...

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .