macOS: как обращаться со ссылками на файлы, когда пользователь перемещает родительскую папку - PullRequest
0 голосов
/ 04 мая 2019

В старые времена я использовал FSRef для отслеживания местоположения файла, когда я работал с ним в течение жизни моего приложения. Они ссылались на каталог по их идентификатору (inode) и имени файла внутри.

В настоящее время мы должны вместо этого использовать NSURL ссылки на файлы, которые вместо этого используют полные пути.

Проблема, с которой я сталкиваюсь, заключается в том, что, когда пользователь меняет имя вложенной папки, мои NSURL, кажется, не отслеживают изменение пути, как это делали FSRef.

Какие есть варианты отслеживания файлов? Полагаю, можно было бы использовать закладки, но это кажется мне излишним, потому что тогда мне приходится разрешать закладку каждый раз, когда я хочу использовать отслеживаемый файл. Мне не нужно отслеживать все запуски приложений, и мне, возможно, придется отслеживать 10000 файлов, поэтому я не думаю, что закладки - это правильный выбор для этого.

И, теоретически, я мог бы столкнуться с условиями гонки, где, если пользователь изменяет путь только между моим разрешением закладки и доступом к файлу. С FSRefs это никогда не было проблемой.

Действительно ли Apple сломала эту функцию Mac с тех пор, как мы получили HFS, или что мне не хватает?

1 Ответ

2 голосов
/ 04 мая 2019

Если вы не нуждаетесь в отслеживании между запусками приложений рассмотрите возможность использования URL-адресов ссылок на файлы

...