Change the Extension of Files in a Specified Folder
This function will allow you to change the extension of files within a specified folder. You can either change the name of all files, or files with a specified extension. A reference to the Scripting Runtime is required. See code comments for details and example.
Public Function ChangeExtension(ByVal FolderName As String, ByVal NewExtension As String, Optional ByVal OldExtension As String = "") As Boolean
Dim oFso As New FileSystemObject
Dim oFolder As Folder
Dim oFile As File
Dim sOldName As String
Dim sNewName As String
Dim iCtr As Long
Dim iDotPosition As Integer
Dim sWithoutExt As String
Dim sFolderName As String
sFolderName = FolderName
If Right(sFolderName, 1) <> "\" Then sFolderName = sFolderName & "\"
Set oFolder = oFso.GetFolder(FolderName)
For Each oFile In oFolder.Files
sOldName = sFolderName & oFile.Name
sNewName = ""
iDotPosition = InStrRev(sOldName, ".")
If iDotPosition > 0 Then
If OldExtension = "" Or UCase(Mid(sOldName, iDotPosition + 1)) = UCase(OldExtension) Then
sWithoutExt = Left(sOldName, iDotPosition - 1)
sNewName = sWithoutExt & "." & NewExtension
On Error Resume Next ''file may already exist
' if you don''t want to let this slide, remove this line
Name sOldName As sNewName
Err.Clear
On Error GoTo ErrorHandler
End If
End If
Next
ChangeExtension = True
End Function
ErrorHandler:
Set oFile = Nothing
Set oFolder = Nothing
Set oFso = Nothing
Loading Comments ...
Comments
No comments have been added for this post.
Sorry. Comments are frozen for this article. If you have a question or comment that relates to this article, please post it in the appropriate forum.