当进程打开文件或目录的句柄时,它指定它想要的共享级别.共享级别可以是标志FILE_SHARE_DELETE,FILE_SHARE_READ和FILE_SHARE_WRITE的任意组合.旗帜的名称非常明显.如果我指定FILE_SHARE_READ这允许其他进程读取文件,FILE_SHARE_WRITE允许其他进程写入文件(可能在我的脚下更改它),FILE_SHARE_DELETE允许其他进程删除文件(虽然我认为它实际上不会被删除,直到我关闭文件句柄后).
无论如何,如果任何进程打开文件的句柄并且没有指定FILE_SHARE_DELETE,这意味着在第一个进程关闭它的句柄之前,没有其他进程可以删除该文件.这是您获取那些“文件被另一个进程锁定”错误的常见原因.请注意,进程也可以打开目录句柄,因此这也适用于删除目录,即使它们是空的.
至于为何无法从资源管理器中删除文件时从命令提示符中删除文件的原因,我不明白为什么会发生这种情况.我需要亲眼看看.
JR