function openFileDialog() {
dialog.showOpenDialog(win, {
properties: ['openFile']
} , filepath => {
if (filepath) {
fs.writeFile('path.txt', filepath, function (err, data) {
if (err) console.log(err);
});
scanFile(filepath)
}
})
}
function scanFile(filepath) {
if(!filepath || filepath[0] == 'undefined') return;
console.log(filepath)
fs.readFile(filepath,"utf8", (err,data) => { // ----> *ERROR*
if(err) console.log(err);
var arr = [];
if (data.substr(-4) === '.mp3' || data.substr(-4) === '.m4a'
|| data.substr(-5) === '.webm' || data.substr(-4) === '.wav'
|| data.substr(-4) === '.aac' || data.substr(-4) === '.ogg'
|| data.substr(-5) === '.opus') {
arr.Push(files[i]);
}
var objToSend = {};
objToSend.files = arr;
objToSend.path = filepath;
win.webContents.send('selected-files', objToSend)
})
}
J'ai essayé de créer une application de lecteur de musique électronique. Dans un premier temps, j'ouvre mon dossier. Lorsque j'ouvre un fichier, "TypeError [ERR_INVALID_ARG_TYPE]: l'argument" chemin "doit être de type chaîne, tampon ou URL. Type reçu non défini" cette erreur s'est produite et un message d'erreur a montré que scanFile (chemin de fichier), fs.readFile (~ ~) a provoqué une erreur. Comment dois-je le réparer?
La première ligne de scanFile
se lit comme suit:
if(!filepath || filepath[0] == 'undefined') return;
Cela m'indique que filepath
est un tableau, pas une chaîne (ou Buffer ou URL). Vérifiez la sortie de l'instruction console.log
Pour voir si c'est le cas. Étant donné que l'instruction if
recherche filepath[0]
, Je commencerais par là et mettrais à jour le code pour lire fs.readFile(filepath[0],"utf8", (err,data) => {
, car l'instruction if
implique que filepath[0
] Est la valeur que vous devez utiliser