fortypoundhead.com

Change the Extension of Files in a Specified Folder

Posted On 2007-05-03 by FortyPoundHead
Keywords:
Tags: Visual Basic 6 
Views: 1744


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 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:54.161.79.96

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



Recent Forum Posts

SSL Now Active
dwirch posted on June 16, 2017 at about 8:40 in Site News

SSL Now Active
dwirch posted on June 13, 2017 at about 7:59 in Site News

Coding Archive?
dwirch posted on June 3, 2017 at about 12:54 in Site News

Job Spammer: Bharti Jigyasi
dwirch posted on June 2, 2017 at about 16:57 in Spammers

Coding Archive?
dwirch posted on May 25, 2017 at about 12:38 in Site News

BWASL returns
dwirch posted on May 13, 2017 at about 15:24 in Site News