Why do the System.IOUtils functions and TStreamReader use fmShareCompat?
问题 When I first saw the System.IOUtils unit with functions like TFile.ReadAllBytes and TFile.ReadAllText and the TStreamReader and TBinaryReader classes in System.Classes I was quite excited to have easy ways to read binary and text files. After using them for a while I noticed that the default share mode is implicitly fmShareCompat , since they all use TFileStream.Create , but do not explicitly specify a share mode. Since fmShareCompat is treated as fmShareExclusive on Windows this leads to