diff --git a/src/olympic/studio/modlib/src/project.cpp b/src/olympic/studio/modlib/src/project.cpp index edbb7323..9b9843a8 100644 --- a/src/olympic/studio/modlib/src/project.cpp +++ b/src/olympic/studio/modlib/src/project.cpp @@ -56,9 +56,13 @@ ox::FileSystem &Project::romFs() noexcept { } ox::Error Project::mkdir(ox::CRStringView path) const noexcept { - oxReturnError(m_fs.mkdir(path, true)); - fileUpdated.emit(path, {}); - return {}; + auto const [stat, err] = m_fs.stat(path); + if (err) { + oxReturnError(m_fs.mkdir(path, true)); + fileUpdated.emit(path, {}); + } + return stat.fileType == ox::FileType::Directory ? + ox::Error{} : OxError(1, "path exists as normal file"); } ox::Result Project::stat(ox::CRStringView path) const noexcept {