Как удалить файл с помощью node.js?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
Я не вижу команду remove?
Как удалить файл с помощью node.js?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
Я не вижу команду remove?
Я думаю, вы хотите использовать fs.unlink
.
Более подробную информацию о fs
можно найти здесь.
Вы можете вызвать fs.unlink(path, callback)
для асинхронной разблокировки (2) или fs.unlinkSync(path)
для синхронной разблокировки (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 (Синхронный) вместо 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');
});
});
Вот небольшой фрагмент, который я сделал для этой цели,
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.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');
}
});
В качестве принятого ответа используйте 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');
});
Здесь ниже мой код, который работает нормально.
const fs = require('fs');
fs.unlink(__dirname+ '/test.txt', function (err) {
if (err) {
console.error(err);
}
console.log('File has been Deleted');
});
вы можете использовать del модуль для удаления одного или нескольких файлов в текущем каталоге. что приятно об этом, это защищает вас от удаления текущего рабочего каталога и выше.
const del = require('del');
del(['<your pathere here>/*']).then( (paths: any) => {
console.log('Deleted files and folders:\n', paths.join('\n'));
});
Вы можете использовать функцию fs.unlink(path, callback). Вот пример обёртки функции с шаблоном "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, плюс все Promisified. В качестве бонуса существует доступный метод fs.remove().
Это очень легко с фс.
var fs = require('fs');
try{
var sourceUrls = "/sampleFolder/sampleFile.txt";
fs.unlinkSync(sourceUrls);
}catch(err){
console.log(err);
}
Здесь приведен код, в котором вы можете удалить файл/изображение из папки.
var fs = require('fs');
Gallery.findById({ _id: req.params.id},function(err,data){
if (err) throw err;
fs.unlink('public/gallery/'+data.image_name);
});