Проверьте, является ли fstream файлом или каталогом

Я использую C ++ fstream для чтения файла конфигурации.Прямо сейчас, если я передаю путь к каталогу, он молча игнорирует это.Например, ---- +: = 1 =: + ---- возвращает истину, даже если ---- +: = 2 =: + ---- - это каталог.Поскольку это непреднамеренный ввод для моей программы, мне нравится проверять его и генерировать исключение.Как проверить, является ли только что открытый fstream обычным файлом, каталогом или потоком?Кажется, я тоже не могу найти способ:получить дескриптор файла из заданного потока ifstream.используйте другой механизм, чтобы найти эту информацию в ifstream.В некоторых обсуждениях на форуме было высказано предположение, что ни то, ни другое невозможно, потому что это зависит от ОС и, следовательно, никогда не может быть частью стандарта fstream C ++.Единственная альтернатива, о которой я могу думать, - это переписать мой код, чтобы полностью избавиться от ifstream и прибегнуть к C-методу файлового дескриптора ( ---- +: = 3 =: + ---- ) вместе с ---- +: = 4 =: + ---- :Я предпочитаю fstream.Отсюда мой вопрос.
7 голосов | спросил MacFreek 28 MaramSat, 28 Mar 2015 00:03:17 +03002015-03-28T00:03:17+03:0012 2015, 00:03:17

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132