【发布时间】:2017-05-03 11:37:52
【问题描述】:
我有一个持续读取日志文件的 c++ 程序(例如:C:/temp/file.txt)。但是,在程序运行时,我希望能够删除/重命名包含被监视文件的文件夹('temp')。
目前,我正在使用 CreateFile()。
CreateFile(
szFilename,
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL)
每当我删除/重命名文件夹时,都会出现以下错误: "操作无法完成,因为其中的文件夹或文件已在另一个程序中打开"
有没有办法在不锁定文件的情况下读取/打开文件?
【问题讨论】:
-
没办法。如果您已打开文件以在文件夹中读取,则没有其他人可以使用
DELETE访问权限打开此文件夹。但这是重命名/删除所必需的
标签: c++ windows locking createfile