-
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); } ] });
—
—