为什么System.IOUtils函数和TStreamReader使用fmShareCompat?

Jen*_*off 6 delphi share file-access delphi-xe2

当我第一次看到System.IOUtils有类似的功能单元TFile.ReadAllBytesTFile.ReadAllTextTStreamReaderTBinaryReader在课堂上System.Classes我很高兴能有简单的方法来读取二进制和文本文件.

使用它们一段时间后,我注意到默认共享模式是隐式的fmShareCompat,因为它们都使用TFileStream.Create,但没有明确指定共享模式.

由于在Windows上fmShareCompat被视为处理,因此fmShareExclusive在使用它时会导致文件锁定问题.

这是Delphi开发人员的疏忽吗?或者有没有理由不fmShareDenyWrite默认使用?

另外为什么没有办法指定共享模式?

我现在很想写出我自己的这些类的版本,以使它们更加友好.