From 6952f2295a4ba95f75fe10f2ed8c23ed304dd59a Mon Sep 17 00:00:00 2001 From: Mattes D Date: Mon, 6 Apr 2015 22:00:54 +0200 Subject: Added cFile:ChangeFileExt() function. --- src/OSSupport/File.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/OSSupport/File.cpp') diff --git a/src/OSSupport/File.cpp b/src/OSSupport/File.cpp index 8957dfaef..7ad1b3f81 100644 --- a/src/OSSupport/File.cpp +++ b/src/OSSupport/File.cpp @@ -453,6 +453,29 @@ AString cFile::ReadWholeFile(const AString & a_FileName) +AString cFile::ChangeFileExt(const AString & a_FileName, const AString & a_NewExt) +{ + auto res = a_FileName; + auto DotPos = res.rfind('.'); + if (DotPos == AString::npos) + { + // No extension, just append it: + res.push_back('.'); + res.append(a_NewExt); + } + else + { + // Replace existing extension: + res.erase(DotPos + 1, AString::npos); + res.append(a_NewExt); + } + return res; +} + + + + + int cFile::Printf(const char * a_Fmt, ...) { AString buf; -- cgit v1.2.3