Несколько месяцев назад я спросил, есть ли программа или какой-либо метод для доступа к последним окнам / местам Finder?

Задав этот вопрос, я начал использовать утилиту Fresh для просмотра недавно измененных файлов по всей системе и доступа к ним во всплывающем меню:

Мне это нравится, но мне также хотелось бы использовать какой-либо сценарий для поиска путей к недавно измененным файлам в системе. Как я могу отслеживать файлы и получать список тех, которые недавно изменились?

1 ответ1

1

Я не знаю, как просмотреть недавно измененные файлы, но недавно открытые файлы хранятся в шестнадцатеричном формате в com.apple.recentitems.plist. Этот поток MacScripter содержит обработчик для получения только путей к файлам, но он перестал работать в 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)

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