Como faço para excluir um arquivo com node.js?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
Não vejo um comando de remoção?
Como faço para excluir um arquivo com node.js?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
Não vejo um comando de remoção?
Respostas:
rmFilepseudônimo
rmapelido se eles têm rmdirmétodos
fs.unlinkSync()
Você pode ligar fs.unlink(path, callback)para desvincular assíncrono (2) ou fs.unlinkSync(path)desvincular síncrono (2).
Onde pathestá o caminho do arquivo que você deseja remover.
Por exemplo, queremos remover o discovery.docxarquivo do c:/bookdiretório Então, meu caminho do arquivo é c:/book/discovery.docx. Portanto, o código para remover esse arquivo será,
var fs = require('fs');
var filePath = 'c:/book/discovery.docx';
fs.unlinkSync(filePath);
Se você deseja verificar o arquivo antes de excluir, se ele existe ou não. Portanto, use fs.stat ou fs.statSync ( Synchronous ) em vez de fs.exists. Porque, de acordo com a documentação mais recente do node.js. , fs.existsagora descontinuada .
Por exemplo:-
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.unlinke, se o arquivo não existir, ocorrerá um ENOENTerro no retorno de chamada. Não há necessidade de verificar antes de tentar desvincular.
fs.unlinkexecutada quando o arquivo não existe, então minha opinião é que verifique o arquivo antes de remover.
unlinkretorno de chamada. Se esse erro ocorreu, o arquivo não existia. Veja a resposta da Searene, por exemplo.
Eu não acho que você precise verificar se o arquivo existe ou não, fs.unlinkirá verificar por você.
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`);
}
});
Aqui está um pequeno trecho que eu fiz para esse fim,
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.existse antes de removê-lo fs.unlink? Poderia acontecer.
unlinke, se não existir, manipular o ENOENTerro. Caso contrário, você pode criar uma condição de corrida.
Como resposta aceita, use fs.unlinkpara excluir arquivos.
Mas de acordo com a documentação do Node.js.
Usando
fs.stat()para verificar a existência de um arquivo antes de chamarfs.open(),fs.readFile()oufs.writeFile()não é recomendado. Em vez disso, o código do usuário deve abrir / ler / gravar o arquivo diretamente e lidar com o erro gerado se o arquivo não estiver disponível.Para verificar se existe um arquivo sem manipulá-lo posteriormente,
fs.access()é recomendável.
Para verificar arquivos podem ser excluídos ou não, Use fs.accessem vez
fs.access('/etc/passwd', fs.constants.R_OK | fs.constants.W_OK, (err) => {
console.log(err ? 'no access!' : 'can read/write');
});
unlinkdiretamente porque elas sabem que têm direitos para excluir o arquivo. Mas fs.accessé uma boa alternativa se eles precisarem verificar antes da exclusão. Mas acho que se eles precisam verificar se existe um arquivo sem manipulá-lo depois, devem usar naturalmente fs.stat, fs.accesstem um propósito diferente na minha humilde opinião.
Aqui abaixo do meu código que funciona bem.
const fs = require('fs');
fs.unlink(__dirname+ '/test.txt', function (err) {
if (err) {
console.error(err);
}
console.log('File has been Deleted');
});
2019 e o Nó 10+ está aqui . Abaixo da versão usando o modo doce assíncrono / aguardado .
Agora não há mais a necessidade de envolver o fs.unlinkPromises nem de usar pacotes adicionais (como fs-extra).
Basta usar a API nativa do Promises fs .
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);
}
})();
Aqui estão as fsPromises.unlink especificações dos documentos do Node.
Observe também que a API fs.promises marcada como experimental no Nó 10.xx (mas funciona totalmente bem), e não é mais experimental desde então 11.14.0.
você pode usar o módulo del para remover um ou mais arquivos no diretório atual. o que é legal nisso é que o protege contra a exclusão do diretório de trabalho atual e acima.
const del = require('del');
del(['<your pathere here>/*']).then( (paths: any) => {
console.log('Deleted files and folders:\n', paths.join('\n'));
});
Você pode usar a função fs.unlink (caminho, retorno de chamada) . Aqui está um exemplo do wrapper de função com o padrão "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');
}
})
};
Remova os arquivos do diretório que corresponde à regexp para o nome do arquivo. Utilizado apenas fs.unlink - para remover arquivos, fs.readdir - para obter todos os arquivos de um diretório
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 fornece um método de remoção:
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
Use o módulo NPM fs-extra , que fornece tudo em fs, além de tudo é prometido. Como bônus, há um método fs.remove () disponível.
Aqui o código onde você pode excluir o arquivo / imagem da pasta.
var fs = require('fs');
Gallery.findById({ _id: req.params.id},function(err,data){
if (err) throw err;
fs.unlink('public/gallery/'+data.image_name);
});
deletealias!