«Файл» может быть чем-то вроде символической ссылки.Важность различий между файлом и символической ссылкой на файл зависит от вашего приложения.
Использование логического выражения для представления «является чем-то или чем-то другим» - плохая идея, потому что она не ясначто означает «истина» или «ложь».
Даже если вы помните, что «истина» означает «каталог», «ложь» логически означает «не каталог» ... И читательоставил вопрос: «Ну, я знаю, что это не каталог, но что такое это?»
И тот факт, что вы задаете вопрос, демонстрирует это.
Рассмотрите возможность использованиявместо этого перечисление:
enum Kind { DIRECTORY, FILE }
Мало того, что это самодокументируется (у вас будет код, говорящий что-то вроде «если это файл / иначе, если это каталог»), он оставляет возможность добавлениядополнительные типы в будущем.