2017-01-24 2 views
0

Я собирался использовать fs.access, чтобы узнать, существует ли каталог, а затем, если он существует, напишите файл в этот каталог, если он не сначала создает каталог, а затем записывает в него файл.Как проверить, существует ли каталог до его записи (nodejs)?

Но в документах сказано, что это не рекомендуется. `Использование fs.access() для проверки доступности файла перед вызовом fs.open(), fs.readFile() или fs.writeFile() не является рекомендуемые. Это приводит к состоянию гонки, поскольку другие процессы могут изменять состояние файла между двумя вызовами.

Вместо код пользователя должен открыть/чтение/запись файла непосредственно и обработать ошибку поднятой, если файл не accessible.`

Есть ли рекомендуемый способ проверить первый тогда писать?

+0

Проверьте это, http://stackoverflow.com/questions/4482686/check-synchronously-if-file-directory-exists-in-node-js –

+0

http://stackoverflow.com/questions/4482686/check- synchron-if-file-directory-exists-in-node-js –

+0

есть ли способ асинхронной работы? @IshanJain – georgej

ответ

3

Как документ только что цитировал говорит, рекомендуемый подход заключается просто в использовании fs.open(), fs.readFile() или fs.writeFile() попытки загрузить файл, и обработать ошибку, если он бросает один.

+0

, если он заканчивает тем, что бросает ошибку, было бы разумно пойти прямо в создание каталога, затем записать файл на него или это плохая практика? Должен ли я показывать пользователю ошибку? @troyalford – georgej

+2

Я не знаю ваш случай использования, чтобы определить это для вас, к сожалению. В общем, мой совет: если ваш пользователь несет ответственность за создание файла, который будет читать ваша программа, попросите пользователя, когда вы получите сообщение об ошибке. Если ваша программа отвечает за это - не запрашивайте пользователя, просто создайте его. –

+1

gotcha, оцените его – georgej

Смежные вопросы