Чем плохо сначала проверить на существование, а потом создать если что? Страх, что какая-нибудь малварь что-нибудь напишет? Так мой софт и не рассчитан на борьбу с малварью.
Потому что у тебя могут удалить файл до того как ты его откроешь. Поэтому надо по-хорошему дублировать логику, но оно отменяет смысл в первой проверке.