Преобразовать NSString, содержащий URL, в путь POSIX - PullRequest
7 голосов
/ 16 апреля 2011

Я работаю над извлечением пути POSIX к папке или файлу из NSPathControl после перетаскивания файла или папки на него.

Я новичок, но мне удалось получитьзначение из элемента управления (называемое Destination) в моем коде следующим образом:

NSString *filepath;
filepath = [Destination stringValue];

Это дает мне что-то вроде

file://test/My%20New%20Project/

, но я хотел бы иметь его в POSIXформа пути:

/test/My New Project
, потому что мне нужно передать его NSTask, выполняющему программу командной строки.

Любое предложение о том, как преобразовать содержимое этого NSString из формата URL в POSIXпуть?

1 Ответ

17 голосов
/ 16 апреля 2011

Используйте -URL вместо -stringValue.Это вернет объект NSURL, представляющий путь, отображаемый элементом управления путем.Затем вы можете отправить -path объекту NSURL, чтобы получить его строковое представление без схемы URL / экранирования.Например:

NSURL *fileURL = [Destination URL];
NSString *filepath = [fileURL path];

или

NSString *filepath = [[Destination URL] path];
...