Use um script para capturar caminhos para os arquivos recentemente alterados no sistema?

0

Meses atrás eu perguntei Existe algum programa ou método para acessar janelas / locais recentes do Finder?

Depois de fazer essa pergunta, comecei a usar um utilitário chamado Fresh para ver arquivos recentemente alterados em todo o sistema e acessá-los em um pop-up menu:

Eu gosto disso, mas também gostaria de alguma maneira de usar um script para pegar caminhos para os arquivos recentemente alterados no sistema. Como posso monitorar arquivos e obter uma lista dos que foram alterados recentemente?

    
por cwd 17.10.2011 / 02:06

1 resposta

1

Eu não sei como ver arquivos modificados recentemente, mas arquivos abertos recentemente são armazenados em formato hexadecimal em com.apple.recentitems.plist. Este tópico do MacScripter contém um manipulador para obter apenas os caminhos dos arquivos, mas ele parou de funcionar em 10.8.

on datatoposix(x)
    set f to (open for access POSIX file ("/tmp/datatoposix.dat") with write permission)
    try
         repeat with d in x
              set eof f to 0
              -- Write the data object to the file.
              write d's contents to f
              -- Reset the file mark to byte 21.
              read f from 21 for 0
              set POSIXpath to ""
              repeat
                    -- Read the next 8 bytes as a string and get the characters' IDs.
                    set idList to id of (read f for 8 as string)
                    -- Finish when IDs 2 to 8 aren't the values for "path item".
                    if (idList does not end with {0, 0, 0, 1, 1, 0, 0}) then exit repeat
                    -- Get the byte length of the item's name from the first ID.
                    set len to beginning of idList
                    -- Read that number of bytes as UTF-8 and append the result to the POSIX path.
                    set POSIXpath to POSIXpath & ("/" & (read f for len as «class utf8»))
                    -- Advance the file mark past any padding.
                    read f for (4 - len mod 4) mod 4
              end repeat
              set d's contents to POSIXpath
         end repeat
    on error msg
         display dialog msg
    end try
    close access f
    x
end datatoposix

tell application "System Events"
    tell property list file "~/Library/Preferences/com.apple.recentitems.plist"
        set l to property list item "RecentDocuments"'s property list item ¬
        "CustomListItems"'s property list items's property list item "Bookmark"'s value
    end tell
end tell

datatoposix(l)
    
por 18.10.2011 / 00:36

Tags