2
Windows在哪些情況下允許覆蓋打開的文件?這是否允許?這包括將不同的文件重命名爲與打開文件相同的名稱。覆蓋Windows中的打開文件
Windows在哪些情況下允許覆蓋打開的文件?這是否允許?這包括將不同的文件重命名爲與打開文件相同的名稱。覆蓋Windows中的打開文件
如果你看看documentation for CreateFile()
,這個參數是dwShareMode
。這可以確定另一個進程在打開時可以對該文件執行的操作。
指定FILE_SHARE_READ
讓另一個進程打開文件以供閱讀。有FILE_SHARE_WRITE
,這意味着另一個進程可以寫入它。還有FILE_SHARE_DELETE
,它允許刪除和(IIRC)也重命名。
如果有人在沒有FILE_SHARE_WRITE
的情況下打開文件,並打開文件進行寫入訪問,則會得到ERROR_SHARING_VIOLATION
。否則,你應該可以寫信給它。
不幸的是,如果一個進程出現並且沒有設置共享標誌來允許你需要的東西,那麼你的運氣非常不好。雖然您可能可以使用MoveFileEx()
和選項MOVEFILE_DELAY_UNTIL_REBOOT
。但我不確定這是否有效;除了它存在之外,我對這個電話的瞭解不多。 :-)