我正在使用 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?
如果该包由安装在设备上的应用程序使用,则该应用程序应在系统中注册其扩展名,以将其标识为包文件夹而不是普通文件夹。但是,我不确定您是否可以将这些识别为来自未注册该特定类型的应用程序的包。
如果包不是 bundle 并且具有未被当前设备上安装的应用程序注册的扩展名,那么我认为没有任何方法可以确定是准确的,并且您的解决方法是具有文件扩展名可能是您唯一可以做的事情。
关于iOS Dropbox API : how to tell folders from file packages?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42988225/