Updating Filename in MS Flow (Power automate)

This is a walk through on how to update a filename while keeping the same file extension in MS Flow.

In this example we are going to assume the filename is saved in a Variable called “Full File Name”. The walkthrough will name a file to <filename>_1.<extension>

We will also assume that variables(‘AttachmentCounter’) is equal to “1”

For example: picture.jpg will be renamed to picture_1.jpg

tldr; the function is:
concat(concat(substring(variables('Full File Name'), 0, lastIndexOf(variables('Full File Name'), '.')), '_', string(variables('AttachmentCounter'))), '.', last(split(variables('Full File Name'),'.')))

Now lets break it down:

The inner most function is
substring(variables('Full File Name'), 0, lastIndexOf(variables('Full File Name') , '.')

This function gets the substring of the filename starting at index 0 and ending at the last index of a full stop (‘.’)

From our example (picture.jpg) this will return “picture”.

our next function is:
last(split(variables('Full File Name'),'.' )

This function will return the last element in an array which is split by a ‘.’. In our example it will return ‘.jpg’.

Now we just need to concat the results
concat(concat(picture '_', 1),'.', jpg)

and the result is
picture_1.jpg