如何从Office:MAC导出最近打开的文件列表?2011?


0

我最近继承了一些旧的Mac机器,并被告知要在格式化它们之前查找任何重要内容。

这些计算机上安装的东西之一是Office:MAC 2011,每次我打开其中一个文档时,我都会担心另一个文档不在最近打开的列表中。

我想以某种方式保存最近文件的列表,以免丢失最近打开的文档。

是否可以某种方式导出此列表,以便我可以查看列表而不破坏列表?


您可以拍摄列表的屏幕快照
Chris Mukherjee 2014年

:p不,我想要一些我可以搜索的文字。
leeand00 2014年

Answers:


1

您可以这样做,但是很复杂。

所有Microsoft Office产品的最新文档都存储在每个用户库的首选项文件(plist)中:

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

该文件为标准plist格式,可以使用Xcode内置的plist查看器进行查看。如果打开它,它将看起来像这样:

微软plst

每个应用程序的最新项目列表存储在密钥中File MRU。上面的示例适用于Word,它与MSWD代码相对应。每个文档在此plist项下都包含一个编号项。

如您所见,不幸的是,这些键的值是二进制编码的,而不是纯文本,因此您需要将Value字符串粘贴到Hex编辑器中才能查看文件名和路径。(我使用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,XCELExcel)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.