• ELECTRON > les fichiers et dossiers

      VÉRIFICATIONS ET TESTS

      Fichier présent ?

      Si on est dans main.js : const fs = require('fs');

      Si on est dans renderer process : const fs = require('electron').remote.require('fs')

      synchrone

      if (fs.existsSync('chemin/fichier')) {
        console.log('présent')
      } else {
        console.log('absent')
      }

      asynchrone:

      fs.access('chemin/fichier', (err) => {
        if (err) {
            console.log('présent')
          } else {
            console.log('absent')
          }
      })

      DOSSIERS

      contenu du dossier

      fs.readdir( dossier, (err, dir) => {
         for ( var i = 0, path ; path = dir[i] ; i++ ) {
            nomFichier = path
            cheminCompletFichier = dossier + '/' + path
         }
      });

      FICHIERS

      créer

      let contenu = "Some text to save into the file";
      fs.writeFile( fichier, contenu, (err) => {
         if(err){
            alert("erreur avec le fichier "+ err.message)
         }
         alert("fichier créé");
      });

      modifier

      modifier juste une RegEx

      fs.readFile( fichier, 'utf8', function(err, data) {
         var re = new RegExp(quoiRemplacer,"g");
         var formatted = data.replace(re, parQuoiOnRemplace);
         fs.writeFile( fichier, formatted, 'utf8', function(err) {
            if (err) return console.log(err);
         })
      })

       

      fichier = nom du fichier ()

      quoiRemplacer = mots, phrase ou RegEx présent dans la ligne à changer

      parQouiOnRemplace = caractère, mot ou phrase par quoi on remplace ()

      modifier toute la ligne d’une RegEx

      fs.readFile( fichier, 'utf8', function(err, data) {
         let re = new RegExp('^.*' + quoiRemplacer + '.*$', 'gm');
         let formatted = data.replace(re, parQuoiRemplacer);
         fs.writeFile( fichier, formatted, 'utf8', function(err) {
            if (err) return console.log(err);
         })
      })

      supprimer un fichier

      if (fs.existsSync(fichier)) {
          fs.unlink(filepath, (err) => {
              if (err) {
                  console.log("Une erreur s'est produite avec le fichier " + err.message);
                  console.log(err);
                  return;
              }
              console.log("fichier supprimé");
          });
      } else {
          alert("ce fichier n'existe pas");
      }

      lire le contenu d’un fichier

      dialog.showOpenDialog((fileNames) => {
          // fileNames is an array that contains all the selected
          if(fileNames === undefined){
              console.log("No file selected");
              return;
          }
      
          fs.readFile(filepath, 'utf-8', (err, data) => {
              if(err){
                  alert("An error ocurred reading the file :" + err.message);
                  return;
              }
      
              // Change how to handle the file content
              console.log("The file content is : " + data);
          });
      });

       

      The previous example will handle only 1 file, if you want that the dialog accepts multiple files, then change the settings:

      And obviously , loop through the fileNames and read every file manually

       

      dialog.showOpenDialog({
          properties: [
              'openFile', 'multiSelections', (fileNames) => {
                  console.log(fileNames);
              }
          ]
      });

       

       

 

Aucun commentaire

 

Laissez un commentaire