我是iOS开发人员,从未为Mac OSX开发,但我对Dropbox Mac OS应用程序的工作逻辑很感兴趣。确切的问题是:
1)如何以编程方式执行Finder应用程序中显示的其他驱动器/文件夹,如Dropbox那样?
2)如何检测用户是否已从其计算机对Dropbox文件夹进行了修改?有没有办法让一些脚本(在applescript ?????中)在文件内容发生变化时通知应用程序,或者应用程序是否必须定期控制是否有任何文件被更改。
3)OSX应用程序后台活动限制是什么?
答案 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。
守护进程和代理,统称为后台程序,是 没有任何图形用户界面的程序