Як експортувати список нещодавно відкритих файлів з Office: MAC? 2011 рік?


0

Нещодавно я успадкував деякі старі машини Mac і мені сказали шукати що-небудь важливе, перш ніж їх форматувати.

Однією з речей, встановлених на цих машинах, є Office: MAC 2011, і кожного разу, коли я відкриваю один із цих документів, я переживаю, що інший потрапляє у нещодавно відкритий список.

Я хотів би зберегти список останніх файлів деяким чином, щоб я не втрачав більше нещодавно відкритих документів.

Чи можна якось експортувати цей список, щоб я міг переглянути його, не знищуючи його?


Ви можете зробити скріншот списку
Chris Mukherjee

: p Ні, я хочу щось шукати в тексті.
leeand00

Відповіді:


1

Ви можете це зробити, але це складно.

Останні документи для всіх офісних продуктів Microsoft зберігаються у файлі налаштувань (списку) у бібліотеці кожного користувача:

~/Library/Preferences/com.microsoft.office.plist

Цей файл знаходиться у стандартному форматі плістів, і його можна переглядати за допомогою переглядача плістів, вбудованого в Xcode. Якщо ви відкриєте його, це буде виглядати приблизно так:

microsoft plst

Список останніх елементів для кожної програми зберігається у ключі File MRU. Приклад вище для Word, який відповідає MSWDкоду. Кожен документ компрометує один пронумерований елемент під цим ключем.

Як бачите, на жаль, значення для цих клавіш кодовані двійковим кодом, а не простим текстом, тому вам потрібно вставити рядки Значення в шестигранний редактор, щоб побачити імена файлів та шляхи. (Я використовую HexFiend .)

шестигранний переглядач

Підсумок: скопіюйте com.microsoft.office.plistфайл у безпечне місце. За допомогою змащення ліктя ви можете витягнути з цього документа всі останні файли.

Ви також можете перевірити цей скрипт Python, який виконує частину цього розбору автоматично, але ваш пробіг може змінюватися.


0

На основі мого дослідження немає можливості зробити це. Однак ви можете зробити:

  1. Змініть кількість файлів, які відображаються у списку

    або

  2. Закріпіть файли до списку

Для отримання додаткової інформації див. Це посилання .


0

Якщо ви хочете зберегти перелік документів, які ви збираєтеся відкрити, рухаючись вперед, додайте цей макрос до свого Normal.dot

Sub AutoOpen()
    Dim ff As Long
    Dim logpath As String

    logpath = MacScript("return (path to desktop) as string") & "autoopen_log.txt"

    ff = FreeFile
    Open logpath For Append As #ff
    Print #ff, ActiveDocument.FullName
    Close #ff
End Sub

Він запише шлях кожного файлу, який ви відкриєте в Word, до вказаного текстового файлу на робочому столі. Ви можете просто знову відкрити наявні останні файли, щоб додати їх до журналу.


0

Я в кінцевому підсумку реалізував це в Swift і навіть не використовував його (оскільки формат змінився в Office 15), але якщо хтось ще потребує цього:

import Foundation

func getMRUList(forApp: String) -> [String]? {
    guard let defaults = NSUserDefaults.standardUserDefaults().persistentDomainForName("com.microsoft.office") else {
        NSLog("Unable to find Office defaults")
        return nil
    }

    guard let mruList = defaults["14\\File MRU\\" + forApp ] as? [NSDictionary] else {
        NSLog("Unable to find recent documents for Office application \(forApp)")
        return nil
    }

    return mruList.flatMap { (mruItem: NSDictionary) in
        guard let mruFileAliasData = mruItem["File Alias"] as? NSData else {
            NSLog("Unable to extract file alias from MRU item \(mruItem)")
            return nil
        }
        do {
            let mruFileBookmarkData = CFURLCreateBookmarkDataFromAliasRecord(nil, mruFileAliasData).takeRetainedValue()
            let mruFileURL = try NSURL.init(byResolvingBookmarkData: mruFileBookmarkData, options: NSURLBookmarkResolutionOptions(), relativeToURL: nil, bookmarkDataIsStale: nil)
            return mruFileURL.path
        } catch let error as NSError {
            NSLog("Unable to resolve file alias for MRU item \(mruFileAliasData): \(error.localizedDescription)")
            return nil
        }
    }
}

if let mruList = getMRUList("MSWD") {
    print(NSString.init(data: try! NSJSONSerialization.dataWithJSONObject(mruList, options: NSJSONWritingOptions()), encoding: NSUTF8StringEncoding)!)
}

Ви можете замінити MSWDйого творцем іншого додатка Office 14 (наприклад, PPT3для PowerPoint, XCELдля Excel) у відповідних випадках.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.