evgeniy8705
@evgeniy8705
Повелитель вселенной

Почему список файлов в директории и поддиректориях выводится не так как ожидается?

Почему при синхронной обработке файлов, до вывода поддиректории music, выводятся еще несколько файлов, хотя в проводнике они упорядочены не так? По идеи сначала должна идти поддиректория music, вывод ее файлов, а потом уже вывод всех остальных файлов на уровень выше.

let fs = require("fs");
let base = "C://users/iamevg_/desktop/music";

const readDir = (base, lvl) => {
  let files = fs.readdirSync(base);

  files.forEach(file => {
    let state = fs.statSync(`${base}/${file}`);

    if (state.isDirectory()) {
      console.log("\n" + " ".repeat(lvl * 2) + file + "\n");

      let localBase = `${base}/${file}`;

      readDir(localBase, lvl + 1);
    } else {
      console.log(" ".repeat(lvl * 2) + file);
    }
  });
};

readDir(base, 0);

2200866a4c0f49a59fec2a94d3bfbea9.png4f3ca18556c04aa29d1191eb35d64b6f.png
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ответы на вопрос 1
dummyman
@dummyman
диссидент-схизматик
Ответ логичен. Так как не задаешь порядок в котором тебе нужны папки - получай беспорядок.
Хотя на самом деле, содержимое будет отсортировано в порядке их создания на локальном жестком диске.
let files = fs.readdirSync(base).sort();   // Получаешь отсортированный список по имени

let files = fs.readdirSync(base).reverse();   // Получаешь отсортированный 
                                               // список по имени в обратном порядке
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы