سلام در دقیقه 41 توضیح دادید که این برنامه که نوشتید میاد و کل دایرکتوری و زیر دایرکتوری موجود هر کدام از دایرکتوری ها را هم میاد و زیر مجموعه شون را نشون می ده ولی وقتی من برنامه را اجرا کردم فقط دایرکتوری و پوشه های موجود در دایرکتوری سطح اول را به من نشون میده و زیر دایرکتوری سطح های دیگه را نشون نمیده چرا؟
fs.opendir('./',(err ,dir)=>{
if (err){
console.log(err);
return;
}
const readNext =(dir)=>{
dir.read((err,file)=>{
if (err){
console.log(err);
return;
}
// console.log(`file is : ${file}`);
if(file === null){
return;
}
const type = file.isDirectory()? 'directory' : 'file';
console.log(type,file.name);
readNext(dir);
});
}
readNext(dir);
});
سلام.
شما آدرس دهیتون روت پروژه بوده و با دستور opendir دایرکتوری رو باز کردید.
حالا هر چندبار متد read رو صدا بزنید بین دایکتوری و فایل های داخل روت، next میکنه.
منظورم اینه کدهایی که نوشتید زیرمجموعه ی روت رو لاگ گرفتید.
مثلا این کدو اجرا کنید:
const fs = require('fs');
fs.opendir('./', (err, dir) => {
console.log(dir.readSync());
console.log(dir.readSync());
console.log(dir.readSync());
});
اگر به کدهاتون نگاه بندازید میبینید dir هم در هر فراخوانی تغییر نمیکنه و به مسیر روت اشاره میکنه.
بنابراین اگر میخواهید تایپ های دایرکتوری هم فایل های درونش لیست بشن باید مسیر باز بشه و درون اون مسیر هم فایل ها خونده بشه.