从 NSItemProvider 获取文件名/路径

Posted

技术标签:

【中文标题】从 NSItemProvider 获取文件名/路径【英文标题】:Get filename/path from NSItemProvider 【发布时间】:2021-01-27 01:17:13 【问题描述】:

我的 macOS 共享扩展程序获取图像或视频文件。

我希望能够访问NSItemProvider 对象的文件名(或路径)。

我想我可以使用itemProvider.loadDataRepresentation() 来获取媒体数据。但是我不清楚如何检索文件名/路径。

当我打印 itemProvider 对象时,我得到了这个:

<NSItemProvider: 0x600002998d20> types = (
    "public.jpeg",
    "public.file-url",
    "public.url"
)

任何帮助表示赞赏。谢谢

【问题讨论】:

【参考方案1】:

想通了。

                    itemProvider.loadItem(forTypeIdentifier: kUTTypeURL as String, options: nil, completionHandler: 
                        (data, error) in
                        if let url = URL(dataRepresentation: data as! Data, relativeTo: nil)
                            let filename = url.lastPathComponent
                            print(filename)
                        
                    )

【讨论】:

以上是关于从 NSItemProvider 获取文件名/路径的主要内容,如果未能解决你的问题,请参考以下文章

无法读取 NSItemProvider 的preferredPresentationSize

NSItemProvider loadItemForTypeIdentifier:options:completionHandler: 适用于任何类型的(二进制)文件

iOS8 扩展 NSItemProvider UIImage 通过 ALAssetsLibrary 到 ALAsset

如何从 PHPickerViewController 委托获取实时照片或视频

在 Share Extension (Swift) 中处理 NSItemProvider 数据类型

拖放 - 从我的模型创建一个 NSItemProvider