1

У меня есть следующая структура папок с фотографиями на моем диске:

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

Куда:

  • ГГГГ обозначает год, как 2011
  • ММ обозначает месяц, как 04
  • ДД обозначает день, как 27

Однако когда я импортирую фотографии с помощью Picasa, он запрашивает папку и помещает все фотографии в эту папку. На данный момент мне не удалось разместить импортированные фотографии в структуре папок по своему вкусу.

Возможно ли это вообще в Picasa?

2 ответа2

1

Я не мог заставить Picasa сделать это, и в итоге я использовал замечательный ExifTool. Я цитирую:

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

Переименуйте все изображения в DIR и любые содержащиеся в них подкаталоги в форму image_HHMMSS.EXT (где 'ext' - исходное расширение файла) и переместите их в новую иерархию каталогов, основанную на дате изменения файла, с именами путей, например 2006/03/27/image_105859.jpg .

0

Альтернатива решению Сэма, если вы готовы побаловаться с небольшим количеством vbs, - это вставить это в файл .vbs, отредактировав первые две строки соответствующим образом (это фактически сохраняется в 2007/2007-01/2007-01-24 структура):

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

Обычные заявления об отказе от ответственности применяются ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .