Add file extension to all files in a folder in R

Add file extension to all files in a folder in R

Problem Description:

As a result from a loop I have a lot of files without a file extension in a folder.

How could I add a file extension (.png) to all files in the folder while keeping the original name, e.g. from NAME1 to NAME1.png, NAME3 to NAME3.png, NAME6 to NAME6.png etc using R?

Solution – 1

With the list.files function you can retrieve the file names under a given path and with a given pattern. From them you can use paste to add your file extension and next file.rename to rename the files. For instance:

    oldNames<-list.files(...) #some argument here
    newNames<-paste(sep="",oldNames,".png")
    for (i in 1:length(oldNames)) file.rename(oldNames[i],newNames[i])

Solution – 2

Install the pathological package and use replace_extension.

library(devtools)
install_github("pathological", "richierocks")

library(pathological)
old_filenames <- paste0("NAME", 1:6)
new_filenames <- replace_extension(, "png")
file.rename(old_filenames, new_filenames)

Solution – 3

The solution proposed above could be generalised to allow for changes file extension (in the case below from .xls to .html):

path <- "D:/Projects/"

xls_files <- paste(path, list.files(path, pattern = "*.xls"), sep = "")
html_files <- paste(sep="", gsub(".xls", ".html", xls_files))
file.rename(xls_files, html_files)
Rate this post
We use cookies in order to give you the best possible experience on our website. By continuing to use this site, you agree to our use of cookies.
Accept
Reject