Windows API函數CreateFile函數允許您指定所需的訪問權限。有三個選項read, write and delete。如果你從CreateFile獲得一個請求刪除訪問的句柄,那麼你如何使用返回的句柄刪除該文件? DeleteFile函數獲取文件名稱,而不是句柄。使用打開的句柄刪除或重命名文件
大圖: 保存時從我的應用程序寫出一個臨時文件文件,再刪除「真正」的文件和臨時文件重命名爲本名。我已經開始看到搜索索引器或反病毒/間諜軟件打開文件進行閱讀但不允許刪除的問題。這會導致我的保存在移動文件時失敗。我已更改開放代碼以請求刪除訪問權限,以確保在保存時可以刪除該文件。
這一切工作正常,但我仍然有一個第三方應用程序可以抓住我的文件的差距。由於我有一個打開的臨時文件和真實文件的句柄,我正在尋找一種方法來執行使用這些句柄的刪除和重命名功能。我能找到的唯一選擇是關閉句柄,然後調用DeleteFile和MoveFile函數。其實我目前正在使用ReplaceFile API函數來執行這些步驟,但它也有傳入的文件名,並且不會工作,除非我先關閉我的手柄。
我仍然需要支持XP,並且無法開始使用新的事務文件功能。有沒有辦法保持文件鎖定,仍然刪除/重命名它們?
謝謝,這正是我所需要的。 –