Get filename/path from NSItemProvider

1.5k Views Asked by At

My share extension for macOS takes image or video files.

I'd like to be able to access the filename (or path) for the NSItemProvider object.

I've figured I can use itemProvider.loadDataRepresentation() to get the data for the media. However its not clear to me how to retrieve the filename/path.

When I print the itemProvider object, I get this:

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

Any help appreciated. Thanks

1

There are 1 best solutions below

0
user339946 On

Figured it out.

                    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)
                        }
                    })