Dropbox OSX app逻辑

时间:2012-02-16 10:42:56

标签: objective-c macos cocoa dropbox

我是iOS开发人员,从未为Mac OSX开发,但我对Dropbox Mac OS应用程序的工作逻辑很感兴趣。确切的问题是:

1)如何以编程方式执行Finder应用程序中显示的其他驱动器/文件夹,如Dropbox那样?

2)如何检测用户是否已从其计算机对Dropbox文件夹进行了修改?有没有办法让一些脚本(在applescript ?????中)在文件内容发生变化时通知应用程序,或者应用程序是否必须定期控制是否有任何文件被更改。

3)OSX应用程序后台活动限制是什么?

1 个答案:

答案 0 :(得分:6)

1)使用LSSharedFileList Add an item to the Finder/Save dialog sidebar

-(void) addPathToSharedItem:(NSString *)path
{
    CFURLRef url = (CFURLRef)[NSURL fileURLWithPath:path]; 

    // Create a reference to the shared file list.
    LSSharedFileListRef favoriteItems = LSSharedFileListCreate(NULL,
                                                               kLSSharedFileListFavoriteItems, NULL);
    if (favoriteItems) {
        //Insert an item to the list.
        LSSharedFileListItemRef item = LSSharedFileListInsertItemURL(favoriteItems,
                                                                     kLSSharedFileListItemLast, NULL, NULL,
                                                                     url, NULL, NULL);
        if (item){
            CFRelease(item);
        }
    }   

    CFRelease(favoriteItems);
}  

2)您可以使用FSEvent API

  

文件系统事件API为您的应用程序提供了一种方式   用于通知目录层次结构的内容时   改性。

3)看看Daemons and Agents technical note

  

守护进程和代理,统称为后台程序,是   没有任何图形用户界面的程序