Как мне удалить файл с помощью node.js?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
Я не вижу команду удаления?
Как мне удалить файл с помощью node.js?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
Я не вижу команду удаления?
Ответы:
rmFileпсевдоним
rmпсевдоним, если у них есть rmdirметоды
fs.unlinkSync()
Вы можете вызвать fs.unlink(path, callback)Asynchronous unlink (2) или fs.unlinkSync(path)Synchronous unlink (2).
Где pathнаходится путь к файлу, который вы хотите удалить.
Например, мы хотим удалить discovery.docxфайл из c:/bookкаталога. Так что мой файл-путь c:/book/discovery.docx. Таким образом, код для удаления этого файла будет,
var fs = require('fs');
var filePath = 'c:/book/discovery.docx';
fs.unlinkSync(filePath);
Если вы хотите проверить файл перед удалением, существует ли он или нет. Поэтому вместо fs.stat или fs.statSync ( Synchronous ) используйте fs.exists. Потому что, согласно последней документации к node.js , fs.existsтеперь устарела .
Например:-
fs.stat('./server/upload/my.csv', function (err, stats) {
console.log(stats);//here we got all information of file in stats variable
if (err) {
return console.error(err);
}
fs.unlink('./server/upload/my.csv',function(err){
if(err) return console.log(err);
console.log('file deleted successfully');
});
});
fs.unlink, и если файл не существует, вы получите ENOENTошибку в обратном вызове . Не нужно проверять, прежде чем пытаться отключить связь.
fs.unlinkвыполняется, когда файл не существует, поэтому я считаю, что проверять файл перед удалением.
unlink. Если эта ошибка произошла, файл не существует. Посмотрите на ответ Сирена, например.
Я не думаю, что вы должны проверить, существует ли файл или нет, fs.unlinkпроверим это для вас.
fs.unlink('fileToBeRemoved', function(err) {
if(err && err.code == 'ENOENT') {
// file doens't exist
console.info("File doesn't exist, won't remove it.");
} else if (err) {
// other errors, e.g. maybe we don't have enough permission
console.error("Error occurred while trying to remove file");
} else {
console.info(`removed`);
}
});
Вот небольшой фрагмент, который я сделал для этой цели,
var fs = require('fs');
var gutil = require('gulp-util');
fs.exists('./www/index.html', function(exists) {
if(exists) {
//Show in green
console.log(gutil.colors.green('File exists. Deleting now ...'));
fs.unlink('./www/index.html');
} else {
//Show in red
console.log(gutil.colors.red('File not found, so not deleting.'));
}
});
fs.existsа затем удалили fs.unlink? Это могло случиться.
unlink, и если он не существует, обработайте ENOENTошибку. В противном случае вы можете создать условия гонки.
В качестве принятого ответа используйте fs.unlinkдля удаления файлов.
Но согласно документации Node.js
Использование
fs.stat()для проверки существования файла перед вызовомfs.open(),fs.readFile()илиfs.writeFile()не рекомендуется. Вместо этого пользовательский код должен открывать / читать / записывать файл напрямую и обрабатывать возникшую ошибку, если файл недоступен.
fs.access()Рекомендуется проверить, существует ли файл, не манипулируя им впоследствии .
чтобы проверить файлы могут быть удалены или нет, используйте fs.accessвместо
fs.access('/etc/passwd', fs.constants.R_OK | fs.constants.W_OK, (err) => {
console.log(err ? 'no access!' : 'can read/write');
});
unlinkнапрямую, потому что они знают, что у них есть права на удаление файла. Но fs.accessэто хорошая альтернатива, если они должны проверить перед удалением. Но я думаю, что если им нужно проверить, существует ли файл, не манипулируя им впоследствии, их, естественно, следует использовать fs.stat, fs.accessпо моему скромному мнению, другое назначение.
Здесь ниже мой код, который работает нормально.
const fs = require('fs');
fs.unlink(__dirname+ '/test.txt', function (err) {
if (err) {
console.error(err);
}
console.log('File has been Deleted');
});
2019 и Узел 10+ уже здесь . Ниже версии используется сладкий способ async / await .
Теперь не нужно больше оборачиваться fs.unlinkв Promises или использовать дополнительные пакеты (например fs-extra).
Просто используйте нативный API fs Promises .
const fs = require('fs').promises;
(async () => {
try {
await fs.unlink('~/any/file');
} catch (e) {
// file doesn't exist, no permissions, etc..
// full list of possible errors is here
// http://man7.org/linux/man-pages/man2/unlink.2.html#ERRORS
console.log(e);
}
})();
Вот fsPromises.unlink спецификация от Node docs.
Также обратите внимание, что API-интерфейс fs.promises помечен как экспериментальный в Node 10.xx (но работает совершенно нормально), и с тех пор больше не является экспериментальным 11.14.0.
Вы можете использовать модуль del для удаления одного или нескольких файлов в текущем каталоге. что приятно, это то, что защищает вас от удаления текущего рабочего каталога и выше.
const del = require('del');
del(['<your pathere here>/*']).then( (paths: any) => {
console.log('Deleted files and folders:\n', paths.join('\n'));
});
Вы можете использовать fs.unlink (путь, обратный вызов) . Вот пример обёртки функции с шаблоном «error-back»:
// Dependencies.
const fs = require('fs');
// Delete a file.
const deleteFile = (filePath, callback) => {
// Unlink the file.
fs.unlink(filePath, (error) => {
if (!error) {
callback(false);
} else {
callback('Error deleting the file');
}
})
};
Удалите файлы из каталога, который соответствует регулярному выражению для имени файла. Используется только fs.unlink - для удаления файла, fs.readdir - для получения всех файлов из каталога.
var fs = require('fs');
const path = '/path_to_files/filename.anyextension';
const removeFile = (fileName) => {
fs.unlink(`${path}${fileName}`, function(error) {
if (error) {
throw error;
}
console.log('Deleted filename', fileName);
})
}
const reg = /^[a-zA-Z]+_[0-9]+(\s[2-4])+\./
fs.readdir(path, function(err, items) {
for (var i=0; i<items.length; i++) {
console.log(items[i], ' ', reg.test(items[i]))
if (reg.test(items[i])) {
console.log(items[i])
removeFile(items[i])
}
}
});
fs-extra предоставляет метод удаления:
const fs = require('fs-extra')
fs.remove('/tmp/myfile')
.then(() => {
console.log('success!')
})
.catch(err => {
console.error(err)
})
https://github.com/jprichardson/node-fs-extra/blob/master/docs/remove.md
Используйте модуль NPM fs-extra , который дает вам все в fs, плюс все обещано. В качестве бонуса доступен метод fs.remove () .
Здесь код, где вы можете удалить файл / изображение из папки.
var fs = require('fs');
Gallery.findById({ _id: req.params.id},function(err,data){
if (err) throw err;
fs.unlink('public/gallery/'+data.image_name);
});
deleteпсевдоним!