Проверить boost :: filesystem . Это будет делать то, что вам нужно. Я считаю, что это одна из частей надстройки, которая будет включена в следующую версию C ++, когда она станет частью STL, но сейчас она a (бесплатная). тусовочная библиотека. Это настолько распространено, что его можно считать почти стандартным.