3
我正在研究執行文件系統操作的node-webkit應用程序。我需要能夠在刪除(取消鏈接)之前檢查文件是否被另一個進程使用。節點js檢查文件是否正在被另一個進程使用
如果我只使用fs.unlink方法,系統將等到文件停止使用後纔將其完全刪除。我想要的是,如果正在使用該文件,請不要等到它被釋放後,而是取消整個操作並不要刪除它。
謝謝。
我正在研究執行文件系統操作的node-webkit應用程序。我需要能夠在刪除(取消鏈接)之前檢查文件是否被另一個進程使用。節點js檢查文件是否正在被另一個進程使用
如果我只使用fs.unlink方法,系統將等到文件停止使用後纔將其完全刪除。我想要的是,如果正在使用該文件,請不要等到它被釋放後,而是取消整個操作並不要刪除它。
謝謝。
假設你在一個* nix系統上,應該這樣做。顯然,就錯誤和路徑檢查而言,這是過分簡化的。可能有更好的方法來做到這一點,但我不妨開始與此討論:
var fs = require('fs'),
exec = require('child_process').exec;
function unlinkIfUnused(path) {
exec('lsof ' + path, function(err, stdout, stderr) {
if (stdout.length === 0) {
console.log(path, " not in use. unlinking...");
// fs.unlink...
} else {
console.log(path, "IN USE. Ignoring...");
}
});
}
unlinkIfUnused('/home/jack/testlock.txt');
如果您通過同步操作刪除文件會發生什麼情況。你是否遇到錯誤或阻止了腳本? – Krasimir