Я не могу получить результаты поиска, которые объясняют, как это сделать.
Все, что я хочу сделать, это знать, является ли данный путь файлом или каталогом (папкой).
fs.lstatSync(path_string).isDirectory()
должен сказать вам. Из документов :
Объекты, возвращаемые из fs.stat () и fs.lstat (), относятся к этому типу.
stats.isFile() stats.isDirectory() stats.isBlockDevice() stats.isCharacterDevice() stats.isSymbolicLink() (only valid with fs.lstat()) stats.isFIFO() stats.isSocket()
Выше решение будет если; Например, или не существует.throw
Error
file
directory
Если вы хотите true
или false
подход, попробуйте, fs.existsSync(dirPath) && fs.lstatSync(dirPath).isDirectory();
как упоминал Джозеф в комментариях ниже.
let isDirExists = fs.existsSync(dirPath) && fs.lstatSync(dirPath).isDirectory();
Обновление: Node.Js> = 10
Мы можем использовать новый API fs.promises.
Любая версия Node.Js
Вот как вы можете определить, является ли путь асинхронным файлом или каталогом , что является рекомендуемым подходом для узла. используя fs.lstat
Обратите внимание при использовании синхронного API:
источник
Серьезно, вопрос существует пять лет и нет красивого фасада?
источник
В зависимости от ваших потребностей, вы можете полагаться на
path
модуль .Возможно, вам не удастся поразить файловую систему (например, файл еще не создан) и, возможно, вы захотите избежать попадания в файловую систему, если вам действительно не нужна дополнительная проверка. Если вы можете сделать предположение, что то, что вы проверяете, следует
.<extname>
формату, просто посмотрите на название.Очевидно, что если вы ищете файл без extname, вам нужно будет поразить файловую систему, чтобы быть уверенным. Но будьте проще, пока вам не понадобятся более сложные.
источник
Ответы выше проверяют, содержит ли файловая система путь к файлу или каталогу. Но он не определяет, является ли данный путь одним файлом или каталогом.
Как путь к каталогу или файлу, который еще не был записан. Или путь с другого компьютера. Или путь, где существует файл и каталог с одинаковым именем.
Версия узла: v11.10.0 - февраль 2019
источник
Вот функция, которую я использую. Никто не использует
promisify
и неawait/async
использует эту функцию в этом посте, поэтому я решил поделиться.Примечание: я не использую,
require('fs').promises;
потому что это экспериментально в течение одного года, лучше не полагаться на это.источник