2012-09-27 27 views
3

我想完成一個簡單的任務,刪除文件。錯誤真的不能告訴我爲什麼它不能刪除文件。任何關於它可能是什麼的想法,以及我如何能夠在未來找出更多的詳細錯誤?無法刪除文件,我沒有得到詳細的ENOENT

我的代碼:

var fs = require('fs'); 

fs.unlink('/file/path.jpg', function(err){ 
    if (err) throw err; 
}); 

我的錯誤:

DEBUG: 

DEBUG: /Users/vartanarabyan/Development/NodeJS/orcha/routes/document.js:67 

DEBUG:    if (err) throw err; 

DEBUG:     ^

DEBUG: Error: ENOENT, unlink '/Users/vartanarabyan/Development/NodeJS/orcha/public/uploads/5d78abfefd5ff47398103ada55d9be47' 

DEBUG: Program node app exited with code 1 

回答

9

ENOENT意味着No such file or directory。您正嘗試刪除不存在的文件。

+1

該文件是在準確的路徑,使得斜面是真實的固定的問題。 –

+1

你的'unlink'引用'path.jpg',但是錯誤只顯示'../ 5d78abfefd5ff47398103ada55d9be47'。您是否需要添加'.jpg'擴展名,也許? – nneonneo

+0

這只是一個示例路徑,所以我不粘貼很長的東西 –

3

確定通過使用fs.unlinkSync(路徑)

+0

我不認爲這是一個令人滿意的問題解決方案:如果刪除文件僅在過程中阻止時纔有效,那麼您的代碼中可能會遇到未檢測到的競爭條件,並且會找到另一種方式。如果你不知道*爲什麼*你所做的似乎解決了這個問題,你可能還沒有真正解決它。除非這是一次性使用的「一次性使用」代碼,否則請仔細考慮一下正在發生的事情。 – ebohlman

+0

@ebohlman,它似乎是如果一個發現者/資源管理器目錄打開,並且你正在嘗試刪除的文件存在其認爲正在啓動,並且不會被刪除,直到該進程關閉。其種類很奇怪,因爲該文件實際上未被使用且未被阻止。 –