Change the Extension of Files in a Specified Folder

Posted On 2007-05-03 by FortyPoundHead
Tags: VB6 Miscellaneous 
Views: 1842

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

                On Error GoTo ErrorHandler

            End If

        End If


    ChangeExtension = True

End Function

Set oFile = Nothing
Set oFolder = Nothing
Set oFso = Nothing

About the Author

FortyPoundHead has posted a total of 1974 articles.

Comments On This Post

No comments on this post yet!

Do you have a thought relating to this post? You can post your comment here. If you have an unrelated question, you can use the Q&A section to ask it.

Or you can drop a note to the administrators if you're not sure where you should post.

Your IP address is:

Before you can post, you need to prove you are human. If you log in, this test goes away.

Code Links