Get name and extension of file from absolute path in C++
In this tutorial will see the C++ code to get the file name and the extension from its absolute path. The file’s absolute path is a path from its root folder. Each folder is separated by ‘\‘. The filename and its extension are always present at the end (rightmost end) of the path and separated by ‘.‘
Step 1: Copy the file’s absolute path in a string named ‘filepath‘.
Step 2: Find the string length of the filepath and declare a temporary string.
Step 3: Now iterate through the string using the loop. If the character is equal to ‘\‘ then clear the content of the temporary string. Else concatenate the characters into the temporary string. After doing this you will get the part of the filepath after the last \ which is our filename with an extension in a temporary string.
Step 4: Now split that string by taking ‘.‘ as a separator. Iterate through the string using for loop print the characters before ‘.‘ as a file name and remaining as an extension.
Here is the full code:
// Get the name and extension of the file from the absolute path in C++
#include <iostream>
#include <string>
using namespace std;
int main()
{
string filepath = "C:\\Users\\admin\\Desktop\\abc.png"; // The path to the file
string str; //temporary string
int n = filepath.length(); //length of filepath string
for (int i=0;i<n;i++) //iterate through filepath
{
if (filepath[i] != '\\')
{
str += filepath[i]; //concatenate to str
}
else
{
str.clear(); //clear the string str content
}
}
int len = str.length(); //calculate length of last string
string temp; //another temporary string
for (int i = 0; i < len; i++) //iterate through last
{
if (str[i] != '.')
{
temp += str[i]; //concatenate to temp
}
else
{
cout<<"Filename : "<<temp<<endl; //print filename
temp.clear(); //clear the string temp content
}
}
cout<<"Extension : "<<temp<<endl; //print extension
return 0;
}Output:
Filename : abc Extension : png
Also, refer to Listing all files and sub-directories within a directory in C++
Leave a Reply