[英]is ruby rm_rf asynchronous?
如果我做
rm_rf('somewhere')
mkdir('somewhere')
每Permission Denined
, mkdir
拋出一個Permission Denined
。 這是因為rm_rf
以異步rm_rf
運行,有時在mkdir
運行之前還沒有完成刪除dir?
如何在完成刪除之前阻止它?
在Windows btw上運行它。
謝謝
聽起來像NTFS的一個功能,請參閱Microsoft Suppport :
此文件處於稱為掛起刪除的狀態。 此文件已被刪除,但仍有句柄打開。 在更新索引之前,NTFS將等待此文件的所有句柄都關閉。 但是,如果嘗試訪問該文件,NTFS將拒絕該嘗試。 由於該文件在索引中列出,但實際上已刪除,因此您可以查看該文件但無法訪問該文件。
看看解決方案,我認為除了等待和重試之外別無其他。
與任何其他常用的ruby方法一樣, rm_rf
是同步的 。
如果它不是那么你可能會得到一個Errno::EEXIST
錯誤,但你得到'許可被拒絕'。
作為一種解決方法嘗試在rm_rf
和mkdir
之間插入一些小延遲,如sleep(0.1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.