web-dev-qa-db-fra.com

node.js supprime le fichier

Comment supprimer un fichier avec node.js?

http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback

Je ne vois pas de commande de retrait?

475
Mark

Je pense que vous voulez utiliser fs.unlink .

On trouvera plus d’informations sur fsici .

688
Nick

Vous pouvez appeler fs.unlink(path, callback) pour Asynchronous unlink (2) ou fs.unlinkSync(path) pour Synchronous unlink (2).
path est le chemin du fichier que vous voulez supprimer. 

Par exemple, nous voulons supprimer le fichier discovery.docx du répertoire c:/book. Donc, mon chemin de fichier est c:/book/discovery.docx. Donc, le code pour supprimer ce fichier sera, 

var fs = require('fs');
var filePath = 'c:/book/discovery.docx'; 
fs.unlinkSync(filePath);
186
sourcecode

Si vous voulez vérifier le fichier avant de supprimer s'il existe ou non. Donc, utilisez fs.stat ou fs.statSync (Synchronous) au lieu de fs.exists. Parce que selon la dernière version de node.js documentation , fs.exists maintenant deprecated.

Par exemple:-

 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');
   });  
});
55
vineet

Voici un petit extrait de ce que j'ai fait à cet effet,

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.'));
  }
});
25
Stranger

Je ne pense pas que vous deviez vérifier si le fichier existe ou non, fs.unlink le vérifiera pour vous.

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`);
    }
});
21
Searene

En tant que réponse acceptée, utilisez fs.unlink pour supprimer des fichiers.

Mais selon la documentation de Node.js

L'utilisation de fs.stat() pour vérifier l'existence d'un fichier avant d'appeler fs.open(), fs.readFile() ou fs.writeFile() n'est pas recommandée. Au lieu de cela, le code utilisateur doit ouvrir/lire/écrire le fichier directement et gérer l'erreur générée si le fichier n'est pas disponible.

fs.access() est recommandé pour vérifier si un fichier existe sans être manipulé par la suite.

pour vérifier si les fichiers peuvent être supprimés ou non, utilisez plutôt fs.access

fs.access('/etc/passwd', fs.constants.R_OK | fs.constants.W_OK, (err) => {
  console.log(err ? 'no access!' : 'can read/write');
});
6
jasperjian

vous pouvez utiliser del module pour supprimer un ou plusieurs fichiers du répertoire en cours. Ce qui est bien, c’est que cela vous protège contre la suppression du répertoire de travail actuel et au-dessus.

const del = require('del');
del(['<your pathere here>/*']).then( (paths: any) => {
   console.log('Deleted files and folders:\n', paths.join('\n'));
});
2
amazia

Vous pouvez utiliser fs.unlink (chemin, callback) function. Voici un exemple du wrapper de fonction avec le motif "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');
    }
  })
};

2
Oleksii Trekhleb

Supprimez les fichiers du répertoire correspondant à l'expression rationnelle pour le nom de fichier. Utilisé uniquement fs.unlink - pour supprimer un fichier, fs.readdir - pour obtenir tous les fichiers d'un répertoire

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]) 
        }
    }
});
2
Xenia Lvova

Ci-dessous mon code qui fonctionne bien.

         const fs = require('fs');
         fs.unlink(__dirname+ '/test.txt', function (err) {            
              if (err) {                                                 
                  console.error(err);                                    
              }                                                          
             console.log('File has been Deleted');                           
          });                                                            
2
thavaamm

fs-extra fournit une méthode de suppression:

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

1
catch22

Utilisez le module NPM fs-extra , qui vous donne tout dans fs, plus tout est promis. En prime, il existe une méthode fs.remove () available.

0
Jeff Breadner