Почему функции System.IOUtils и TStreamReader используют fmShareCompat?

Когда я впервые увидел System.IOUtils блок с функциями, такими как TFile.ReadAllBytes а также TFile.ReadAllText и TStreamReader а также TBinaryReader занятия в System.Classes Я был очень рад иметь простые способы чтения двоичных и текстовых файлов.

После их использования я заметил, что режим общего ресурса по умолчанию неявно fmShareCompat, поскольку они все используют TFileStream.Create, но не указывайте явно режим обмена.

поскольку fmShareCompat рассматривается как fmShareExclusive в Windows это приводит к проблемам с блокировкой файлов при их использовании.

Это недосмотр разработчиков Delphi? Или есть причина не использовать fmShareDenyWrite по умолчанию?

Кроме того, почему нет способа указать режим обмена?

Теперь я испытываю желание написать свою собственную версию этих классов, чтобы сделать их более дружелюбными.

0 ответов

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