OK, I'm reading files from an FTP server and I'm detecting the filetypes. It takes quite some time, however, to detect all files - up to a few seconds. In fact it takes more time to detect the filetypes than to make the FTP connection.

Can anyone optimize this code so it runs a bit faster?

VB Code:
  1. 'Define filetypes and add files
  2. For i = 0 To frmContentCreator.lstFiles.ListCount - 1
  3.     strFile = frmContentCreator.lstFiles.List(i)
  4.  
  5.     If GetExt(strFile) = "htm" Or GetExt(strFile) = "html" Or GetExt(strFile) = "shtm" Or GetExt(strFile) = "shtml" Or GetExt(strFile) = "php" Or GetExt(strFile) = "php3" Or GetExt(strFile) = "php4" Or GetExt(strFile) = "asp" Or GetExt(strFile) = "hta" Or GetExt(strFile) = "htx" Or GetExt(strFile) = "pht" Or GetExt(strFile) = "phtml" Or GetExt(strFile) = "cfm" Or GetExt(strFile) = "cfml" Then
  6.         'Webpage
  7.         frmContentCreator.exbServer.Bars.Item(2).Items.Add , , strFile, 2
  8.     ElseIf GetExt(strFile) = "jpg" Or GetExt(strFile) = "jpeg" Or GetExt(strFile) = "gif" Or GetExt(strFile) = "png" Or GetExt(strFile) = "" Then
  9.         'Image
  10.         frmContentCreator.exbServer.Bars.Item(3).Items.Add , , strFile, 3
  11.     ElseIf GetExt(strFile) = "doc" Or GetExt(strFile) = "dot" Or GetExt(strFile) = "rtf" Or GetExt(strFile) = "ppt" Or GetExt(strFile) = "xls" Or GetExt(strFile) = "pdf" Or GetExt(strFile) = "swf" Or GetExt(strFile) = "dcr" Or GetExt(strFile) = "class" Or GetExt(strFile) = "mpg" Or GetExt(strFile) = "mpeg" Or GetExt(strFile) = "mov" Or GetExt(strFile) = "avi" Or GetExt(strFile) = "snd" Or GetExt(strFile) = "mp3" Or GetExt(strFile) = "wav" Or GetExt(strFile) = "mid" Or GetExt(strFile) = "zip" Or GetExt(strFile) = "arc" Or GetExt(strFile) = "cab" Or GetExt(strFile) = "tar" Or GetExt(strFile) = "rar" Or GetExt(strFile) = "ace" Then
  12.         'Document
  13.         Select Case GetExt(strFile)
  14.             Case "doc", "dot", "rtf": frmContentCreator.exbServer.Bars.Item(4).Items.Add , , strFile, 9
  15.             Case "ppt": frmContentCreator.exbServer.Bars.Item(4).Items.Add , , strFile, 8
  16.             Case "xls": frmContentCreator.exbServer.Bars.Item(4).Items.Add , , strFile, 7
  17.             Case "pdf": frmContentCreator.exbServer.Bars.Item(4).Items.Add , , strFile, 6
  18.             Case "swf", "dcr": frmContentCreator.exbServer.Bars.Item(4).Items.Add , , strFile, 5
  19.             Case "class": frmContentCreator.exbServer.Bars.Item(4).Items.Add , , strFile, 3
  20.             Case "mpg", "mpeg", "mov", "avi": frmContentCreator.exbServer.Bars.Item(4).Items.Add , , strFile, 3
  21.             Case "snd", "mp3", "mid", "wav": frmContentCreator.exbServer.Bars.Item(4).Items.Add , , strFile, 3
  22.             Case "zip", "arc", "cab", "tar", "rar", "ace": frmContentCreator.exbServer.Bars.Item(4).Items.Add , , strFile, 3
  23.         End Select
  24.     Else
  25.         'File
  26.         frmContentCreator.exbServer.Bars.Item(5).Items.Add , , strFile, 10
  27.     End If
  28. Next

The GetExt() function looks like this:

VB Code:
  1. Public Function GetExt(Path As String, Optional LowerCase As Boolean = True) As String
  2. If LowerCase Then GetExt = LCase(Mid$(Path, InStrRev(Path, ".", , vbTextCompare) + 1)) Else GetExt = Mid$(Path, InStrRev(Path, ".", , vbTextCompare) + 1)
  3. End Function

Oh, and btw, the exbServer component is a vbAccelerator Explorer Bar. Thank you all.