OSX - 使用Sandboxed应用程序从拖放中获取FileURL的文件路径

问题描述 投票:0回答:2

我正在使用拖放功能将文件拖放到我的APP上。

Apple在OSX 10.14中弃用了NSFilenamesPboardType,并建议使用NSPasteboardTypeFileURL。

我得到的URL(字符串)是:

文件:///.file/id=6571367.2682325

如何从此URL获取实际文件路径?我需要文件名和类型信息。我还可以使用完整文件路径访问文件吗?我假设它被添加到我的沙盒中。

objective-c macos drag-and-drop sandbox
2个回答
0
投票

我发现解决方案使用:

NSURL * url = [NSURL initWithString:urlString];
NSString * path = [url fileSystemRepresentation];

是的,该文件可以从我的沙盒应用程序访问。


0
投票

我正在使用Xcode 10.2在Mac OS 10.14上工作。

我在performDragOperation中有两个解决方案(都是带有NSPasteboardTypeFileURL的registerForDraggedTypes。然后):

  1. 上文提到的 [[NSURL URLWithString:relativePath] fileSystemRepresentation];
  2. init pasteBoard NSString * fileURL = [[NSURL URLFromPasteboard:pasteBoard] path];
© www.soinside.com 2019 - 2024. All rights reserved.