Extração de metadados para renomear arquivos recuperados

Extração de metadados para renomear arquivos recuperados

Recentemente recuperei muitos arquivos excluídos usando uma ferramenta chamada photorec -http://www.cgsecurity.org/wiki/PhotoRec

Grande salva-vidas. O único problema é que os arquivos recuperados têm seus nomes substituídos por alguma string aleatória gerada por este programa. (O nome do arquivo e as estruturas de diretório foram perdidos devido à exclusão dos arquivos pelo usuário).

Então executei outro programa chamado photorecsorter para classificar os arquivos recuperados em pastas por suas extensões de arquivo (pdf em uma pasta, ppt em outra e assim por diante) http://builtbackwards.com/projects/photorec-sorter/

Recuperei cerca de 100 mil arquivos, por isso não posso pedir ao usuário para abrir arquivos e examinar o conteúdo para encontrar o que procura. Eu sei que os metadados (cabeçalhos) do arquivo de documento do Word podem me ajudar a recuperar dois elementos-chave de informações que podem ser usados ​​para renomear esse arquivo - Título do documento do Word e última data de modificação. Depois de saber como fazer isso para documentos do Word, talvez eu possa fazer isso para outras extensões de escritório e PDF por conta própria. Procurei algumas ferramentas online, mas antes de tentar algo, queria ver o que os especialistas podem sugerir aqui.

Obrigado

Responder1

Um arquivo VBS (VBScript) como o seguinte deve ajudar pelo menos em documentos do Word:

Option Explicit

Dim objWord, objDoc

Set objWord = CreateObject("Word.Application")
objWord.Visible = False
objWord.DisplayAlerts = False
objWord.Documents.Open "C:\MyDoc.docx", False, True ' path, confirmconversions, readonly
Set objDoc = objWord.ActiveDocument

MsgBox "Title: """ & objDoc.BuiltInDocumentProperties("Title") & """"
MsgBox "Subject: """ & objDoc.BuiltInDocumentProperties("Subject") & """"
MsgBox "Author: """ & objDoc.BuiltInDocumentProperties("Author") & """"
MsgBox "Creation Date: """ & objDoc.BuiltInDocumentProperties("Creation Date") & """"
MsgBox "Last Save Time: """ & objDoc.BuiltInDocumentProperties("Last Save Time") & """"

objWord.Quit 0 ' wdDoNotSaveChanges
Set objWord = Nothing
Set objDoc = Nothing

Você pode usarArquivoSystemObjectiterar por todos os arquivos DOC/DOCX em um diretório erenomearcom base nas cadeias de propriedades retornadas.

Para arquivos Excel ou PowerPoint, useExcel.AplicativoouPowerPoint.Aplicativoquando você cria os objetos do documento. Se você tiver dúvidas, basta pesquisar na rede por tutoriais VBScript relevantes sobre automação de escritório.

Obviamente, não existe um método geral para recuperar metadados para todos os formatos de arquivo; portanto, outros formatos, como PDF, exigirão uma solução totalmente diferente. Recomendo que você pesquise na rede ou poste uma nova pergunta se precisar de ajuda.

informação relacionada