Search Tools Links Login

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

About this post

Posted: 2007-05-03
By: FortyPoundHead
Viewed: 2,394 times

Categories

Visual Basic 6

Attachments

No attachments for this post


Loading Comments ...

Comments

No comments have been added for this post.

You must be logged in to make a comment.