Разбираем, почему хранить путь «как строку» — источник багов, и как тип
std::filesystem::path помогает безопасно собирать путь из частей через
operator/, извлекать компоненты (
parent_path(),
filename(),
stem(),
extension()), менять расширение через
replace_extension() и получать строковое представление через
string(). В конце — практический пример для NoteVault и список типичных ошибок.