как получить список стандартных папок с помощью fs.readdir - PullRequest
0 голосов
/ 31 декабря 2018

Я использую node.js для чего-то.Мне нужно прочитать все файлы и папки внутри определенного пути и вернуть стандартные «папки».например, когда я даю «MAC HD» в качестве пути, который мне нравится, чтобы получить «Приложения», «Библиотека», «Система», «Пользователи» в качестве результата. Мне нужно получить все папки, которые не скрыты. В Windows у меня естьта же проблема. Мне нужны стандартные папки или обычные не скрытые и не системные папки.

это весь мой код:

const child = require('child_process');
var fs = require('fs');
const os = require('os');

const currentPlatform = () => {
  if ('darwin' === os.platform()) {
    return 'MAC';
  } else {
    return 'WIN';
  }
};

const getDriveList = (data, emitter) => {
  const thisPlatform = currentPlatform();
  if (thisPlatform === 'WIN') {
    child.exec('wmic logicaldisk get name', (error, stdout) => {
      let winDriveList = stdout
        .split('\r\r\n')
        .filter(value => /[A-Za-z]:/.test(value))
        .map(value => value.trim());
      emitter('getDriveList', winDriveList);
    });
  } else {
    fs.readdir('/Volumes', (err, files) => {
      emitter('getDriveList', files);
    });
  }
};

const getFilesList = (path, emitter) => {
  console.log("this was sent from client ===>> ", path);
  fs.readdir(path, (err, files) => {
    emitter('getFileList', files);
  });
};

1 Ответ

0 голосов
/ 31 декабря 2018

Я не знаю, существует ли такая вещь, как вы определяете «стандартные папки»?Похоже, вы просто хотите получить список каталогов под / в Mac, а в Windows вам, возможно, придется покопаться в реестре, чтобы найти то, что вы ищете.

Вы можете использовать fs.stat для получения подробной информации о заданном пути, будь то каталог или файл.

fs.stat('/Users', (err, stats) => {
  if (err) throw err;
  if (stats.isDirectory()) console.log("Its a directory!");
});

Nodejs не предоставляет способ обнаружения скрытых файлов по умолчанию, вы можете попробовать использовать hidefile библиотека, которая имеет определенную платформенную логику для определения, скрыт файл или нет.

hidefile.isHidden("/Users", function(err, result) {
   if (err == null) console.log(result);  //-> false
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...