Как использовать TFileStream с FILE_SHARE_DELETE?

В этом отчете о контроле качества говорится, что Delphi не поддерживает режим обмена файлами FILE_SHARE_DELETE

http://qc.embarcadero.com/wc/qcmain.aspx?d=45628

Мне нужно использовать этот режим с TFileStreams. Может ли кто-нибудь придумать простой обходной путь, который не включает изменение кода библиотеки или дублирование множества материалов из библиотеки?

1 ответ

Решение

Отчет о КК верен. TFileStream (более конкретно, SysUtils.FileOpen() функция) не поддерживает FILE_SHARE_DELETE, Поддерживает только FILE_SHARE_READ а также FILE_SHARE_WRITE,

Для того, чтобы использовать права совместного использования сверх того, что TFileStream изначально поддерживает, вам придется вызывать Win32 API CreateFile() функции, то вы можете построить THandleStream объект с помощью ручки, которая CreateFile() возвращается.

Другие вопросы по тегам