Sim, e se você estiver disposto a cutucar os arquivos internos, você não precisa nem instalar o Word no computador que está cutucando! Documentos do Word são na verdade arquivos ZIP com um monte de pequenos arquivos dentro. Na pasta docProps
, há um arquivo app.xml
que contém várias propriedades do documento. O tempo total de edição (em minutos) está no elemento <TotalTime>
dentro do elemento <Properties>
.
Escrevi este script do PowerShell para adicionar os tempos de cada arquivo DOCX no diretório atual:
Add-Type -AssemblyName System.IO.Compression.FileSystem
$totalmins = 0
dir -File | ? {$_.Extension -like '.docx'} | % {
$zip = [System.IO.Compression.ZipFile]::Open($_.FullName, 'Read')
$propsentry = $zip.GetEntry('docProps/app.xml')
If ($propsentry -ne $null) {
$stream = $propsentry.Open()
$reader = New-Object System.IO.StreamReader $stream
$content = $reader.ReadToEnd()
$xmldoc = [xml]$content
$totalmins += $xmldoc.Properties.TotalTime
}
$zip.Dispose()
}
$totalmins
As partes interessantes usam apenas o % do .NETZipFile
classe para pesquisar dentro do documento, então ele converte o conteúdo do arquivo de destino em um documento XML, obtém o número e o adiciona à variável $totalmins
, que é impressa no final.