Для действий с файлами и папками В С++ используются классы и функции, объявленные в заголовочном файле ``<filesystem>`` в пространстве имен ``std::filesystem``. Для имени файла или папки используется специальный класс ``path``, но работает автоматическое преобразование из ``string`` и ``char[]``:\
``path name="c:/temp/sample.txt", from, to;``\
У данного класса есть методы, позволяющие получить путь до файла (папки), имя и расширение, операция ``/`` для соединения двух путей.
В стандарте С операции с файловой системой ограничены некоторыми действиями с файлами (удаление, переименование, создание временных файлов) и объявлены в ``<stdio.h>``.
Многие компиляторы поддерживают функции стандарта [POSIX](https://pubs.opengroup.org/onlinepubs/9699919799/nframe.html), который обеспечивает совместимость между разными версиями Unix/Linux, но так как эти компиляторы есть и в Windows, это позволяет использовать их для переносимого кода. Большинство функций объявлены в ``<unistd.h>`` и ``<sys/stat.h>``
Также напрямую можно использовать API операционной системы, но использование программы будет ограничено только ей. В Windows нужно подключить ``<windows.h>``. Функции имеют окончание A при использовании кодировки ANSI (CP1251) для имен файлов и папок и W для Unicode.
Имя файла в C и Windows API задается как строка:\
``char name[100]="c:\\temp\\sample.txt", from[100], to[100];``
В качестве аргумента всем функциям можно указать не только массив символов (или path в С++), но и строковую константу в кавычках.