Флаг создания недостающих каталогов во время fs.promises.writeFile - PullRequest
0 голосов
/ 01 мая 2020

Когда я проверяю эти флаги файловой системы , я правильно понимаю, что нет никакого флага, который вы можете передать fs.promises.writeFile, который автоматически создаст все отсутствующие каталоги, ведущие к имени файла? Если нет, то какой флаг это делает?

Мне не нравятся решения, которые сначала проверяют наличие папок перед попыткой writeFile, потому что после создания папок эта проверка происходит каждый раз, когда вы записываете файл в эта папка.

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

Если для автоматического создания папок не существует флага для автоматического создания writeFile, то я хотел бы сначала попробовать writeFile, и затем (только если есть исключение) рекурсивно создавать папки.

1 Ответ

1 голос
/ 01 мая 2020

fs.promises.writeFile() не создает автоматически структуру каталогов для вас. Сначала это должно существовать.

Если вы хотите автоматически создать путь, потому что получили ошибку, указывающую на проблему с путем, вы можете использовать fs.promises.mkdir() и передать рекурсивный флаг.

И вы Можно, конечно, создать свою собственную функцию-обертку, которая вызывает fs.promises.writeFile(), и если она получает любую ошибку, которую вы получаете, когда путь не существует (вам нужно проверить, чтобы точно узнать, что это за ошибка), тогда вызовите fs.promises.mkdir() и затем повторите fs.promises.writeFile(). Все это может быть заключено в вашу собственную служебную функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...