iOS Dropbox API : how to tell folders from file packages?

标签 ios objective-c dropbox-api

我正在使用 Dropbox iOS API v2。当尝试从文件中挑选文件夹时,作为包的文件(即首选项文件或 xcodeproject 文件、.framework 等)显示为文件夹类型。有没有办法区分文件夹和文件包?

DBFILESMetadata * metaData = ...;
if ([metaData isKindOfClass:[DBFILESFileMetadata class]]) {
    // is a file
} else if ([metaData isKindOfClass:[DBFILESFolderMetadata class]]) {
    // is a folder or file package
} else if ([metaData isKindOfClass:[DBFILESDeletedMetadata class]]) {
    // has been deleted
}

最佳答案

如果设置了“ bundle ”(B) 位,则应将其视为 bundle ,而不是单个文件。但是,并非所有“包”都是“ bundle ”。

参见:How do I flag a folder as being a package?

如果该包由安装在设备上的应用程序使用,则该应用程序应在系统中注册其扩展名,以将其标识为包文件夹而不是普通文件夹。但是,我不确定您是否可以将这些识别为来自未注册该特定类型的应用程序的包。

参见:https://developer.apple.com/library/content/documentation/CoreFoundation/Conceptual/CFBundles/DocumentPackages/DocumentPackages.html

如果包不是 bundle 并且具有未被当前设备上安装的应用程序注册的扩展名,那么我认为没有任何方法可以确定是准确的,并且您的解决方法是具有文件扩展名可能是您唯一可以做的事情。

关于iOS Dropbox API : how to tell folders from file packages?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42988225/

相关文章:

objective-c - 将 Xcode 4.5 新的 XIB 文件恢复到 iOS<6

iphone - 使用谓词过滤 NSDictionary

ios - 使用 iphone 应用程序将文件从 dropbox/box 帐户上传到我的服务器

ios - CLLocationManager 和 CLLocationManagerDelegate 的问题

ios - 如何使用 subview Controller 中的按钮单击来更改选项卡栏项目标题

ios - Xamarin-提交的应用程序-稀疏过程中发生错误

objective-c - 如何在不附加到 Xcode 中的 gdb 的情况下获取 "Build and Run"?

iphone - 无法从 for-in 循环中更新 NSMutableDictionary 值?

iPhone DropBox API : How to load a file?

java - 使用 DropBox Core API 时出现 NoClassDefFoundError