Extração de metadados para renomear arquivos recuperados

1

Recuperei recentemente muitos arquivos excluídos usando uma ferramenta chamada photorec - link

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

Então eu corri outro programa chamado photorecsorter para classificar arquivos recuperados em pastas por suas extensões de arquivo (pdf em uma pasta, ppt em outro e assim por diante) link

Recuperei cerca de 100K + arquivos, por isso não posso pedir ao usuário para abrir arquivos e ver o conteúdo para encontrar o que eles estão procurando. Eu sei que em word metadados de arquivo de documento (cabeçalhos) pode me ajudar a recuperar dois elementos-chave da informação que podem ser usados para renomear esse arquivo - Título do documento do Word e data da última modificação. Uma vez que eu sei como fazer isso para o word doc, talvez eu possa fazer isso para outras extensões do Office e para o pdf sozinho. Procurei algumas ferramentas on-line, mas antes de tentar algo, queria ver o que os especialistas podem sugerir aqui.

Obrigado

    
por New-Bie 26.02.2013 / 14:40

1 resposta

2

Um arquivo VBS (VBScript) como o seguinte deve ajudar pelo menos para 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 usar FileSystemObject para percorrer todos os arquivos DOC / DOCX em um diretório e renomear eles com base nas cadeias de propriedade retornadas .

Para arquivos do Excel ou do PowerPoint, use Excel.Application ou PowerPoint.Application ao criar os objetos do documento. Se você ficar preso, basta procurar na rede por tutoriais relevantes sobre VBScript de automação do Office.

Não existe um método geral para recuperar metadados para todos os formatos de arquivo, obviamente, portanto, outros formatos, como o PDF, exigirão uma solução totalmente diferente. Eu recomendo que você pesquise na internet ou publique uma nova pergunta se precisar de ajuda.

    
por 27.02.2013 / 10:14