Dropbox OSX 应用程序逻辑

发布于 2025-01-06 08:17:33 字数 282 浏览 0 评论 0原文

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

1)如何以编程方式像 Dropbox 一样在 Finder 应用程序中显示额外的驱动器/文件夹?

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

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

I'm an iOS developer and have never developed for Mac OSX, but I'm interested in the Dropbox Mac OS application's working logic. Exact questions are:

1) How can I programmatically do additional drive/folder that is shown in the Finder app as Dropbox does?

2) How can I detect that user has made modifications to dropbox folder from his computer? Is there any way to make some script(in applescript?????) to notify application when file contents change or does application has to control periodically whether any file has changed or not.

3) What's about OSX applications background activity limitations?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一绘本一梦想 2025-01-13 08:17:33

1)使用LSSharedFileList。
将项目添加到 Finder/保存对话框侧边栏

-(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)查看守护进程和代理技术说明

守护进程和代理,统称为后台程序,是
无需任何图形用户界面即可运行的程序

1) use 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) you can use FSEvent API.

The file system events API provides a way for your application to ask
for notification when the contents of a directory hierarchy are
modified.

3)take a look at Daemons and Agents technical note.

Daemons and agents, collectively known as background programs, are
programs that operate without any graphical user interface

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文