1

我想以编程方式强制 Finder 在 Mountain Lion 中刷新。在以前的 OSX 版本中,以下代码段有效:

OSStatus    SendFinderSyncEvent( const FSRef* inObjectRef )
{
    AppleEvent  theEvent = { typeNull, NULL };
    AppleEvent  replyEvent = { typeNull, NULL };
    AliasHandle itemAlias = NULL;
    const OSType    kFinderSig = 'MACS';

OSStatus    err = FSNewAliasMinimal( inObjectRef, &itemAlias );
if (err == noErr)
{
    err = AEBuildAppleEvent( kAEFinderSuite, kAESync, typeApplSignature,
        &kFinderSig, sizeof(OSType), kAutoGenerateReturnID,
        kAnyTransactionID, &theEvent, NULL, "'----':alis(@@)", itemAlias );

    if (err == noErr)
    {
        err = AESendMessage( &theEvent, &replyEvent, kAENoReply,
            kAEDefaultTimeout );

        AEDisposeDesc( &replyEvent );
        AEDisposeDesc( &theEvent );
    }

    DisposeHandle( (Handle)itemAlias );
}

    return err;
}

有谁知道在 Mountain Lion 上执行此操作的替代方法?谢谢

4

1 回答 1

1

它也不适合我。(Bud ID 12571746)
Apple 需要知道有很多开发人员需要这个。在http://bugreporter.apple.com上提交错误报告——它可能会作为副本被关闭,但每一票都很重要。

对于刷新查找器窗口,您可以创建和删除文件。看看这个帖子。

于 2013-03-21T07:00:05.783 回答