Как остановить удаление файла во время загрузки на Mac - PullRequest
2 голосов
/ 08 марта 2012

У меня клиент-серверное приложение на Mac. Клиент загружает файл, а сервер загружает файл. Север читает определенный размер байтов с клиента и записывает в файл. Но в середине пользователь может удалить файл с помощью контекстного меню Finder или из терминала. Я хочу остановить любую операцию записи / выполнения этого файла из любого другого приложения, пока не начнется загрузка. Это можно легко сделать с помощью FILE_SHARE_READ при создании файла в Windows. Но как мы можем достичь той же функциональности на Mac?

Я пробовал консультативные блокировки на Mac, но не повезло. Если процесс A использует консультативные блокировки файла, процесс B не может получить к нему доступ, но я всегда могу удалить файл с помощью контекстного меню Finder.

1 Ответ

0 голосов
/ 08 марта 2012

Вы уверены, что вам нужно это сделать?Пока у вас есть дескриптор открытого файла, не имеет значения, удален ли файл, вы все равно можете читать из него, пока не закроете дескриптор файла.Если пользователь удалит файл в середине передачи, он не остановит отправку полного файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...