如何在FILE_SHARE_DELETE中使用TFileStream?

时间:2012-08-28 22:34:41

标签: delphi winapi tfilestream

此QC报告称Delphi不支持文件共享模式FILE_SHARE_DELETE

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

我需要在TFileStreams中使用这种模式 - 任何人都可以想到一个简单的解决方法,它不涉及修改库代码,或者从库中复制大量内容吗?

1 个答案:

答案 0 :(得分:4)

质量控制报告是正确的。 TFileStream(更具体地说,SysUtils.FileOpen()函数)不支持FILE_SHARE_DELETE。它仅支持FILE_SHARE_READFILE_SHARE_WRITE

为了使用超出TFileStream原生支持的共享权限,您必须直接调用Win32 API CreateFile()函数,然后可以使用句柄构造THandleStream对象CreateFile()返回。