Hier ist, wie würden Sie erkennen, ob ein Pfad eine Datei oder ein Verzeichnis asynchron, die die empfohlene Vorgehensweise in Knoten ist. fs.lstat
const fs = require("fs");
let path = "/path/to/something";
fs.lstat(path, (err, stats) => {
if(err)
return console.log(err); //Handle error
console.log(`Is file: ${stats.isFile()}`);
console.log(`Is directory: ${stats.isDirectory()}`);
console.log(`Is symbolic link: ${stats.isSymbolicLink()}`);
console.log(`Is FIFO: ${stats.isFIFO()}`);
console.log(`Is socket: ${stats.isSocket()}`);
console.log(`Is character device: ${stats.isCharacterDevice()}`);
console.log(`Is block device: ${stats.isBlockDevice()}`);
});
Beachten Sie, wenn die synchrone API:
Wenn die synchrone Formular werden alle Ausnahmen sofort geworfen. Sie können try/catch verwenden, um Ausnahmen zu behandeln oder zu ermöglichen, dass sie aufblühen.
try{
fs.lstatSync("/some/path").isDirectory()
}catch(e){
// Handle error
if(e.code == 'ENOENT'){
//no such file or directory
//do something
}else {
//do something else
}
}
Beachten Sie, dass die asynchrone Version in der Regel vorzuziehen ist, wenn Sie über allgemeine App-Leistung sorgen. – AlexMA
Beachten Sie, dass wenn das Verzeichnis oder die Datei nicht existiert, Sie einen Fehler zurück erhalten. –