Rubrik: Dateisystem · Ordner & Verzeichnisse | VB-Versionen: VB6 | 09.01.02 |
Dateiendung aller Dateien eines Ordners umbenennen Mit Hilfe der VBEx32.DLL ein Leichtes: Bestimmte Dateitypen eines Ordners umbenennen! | ||
Autor: Andre Schulz | Bewertung: | Views: 21.161 |
www.neochat.de.vu | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Man ist häufig dazu gezwungen die Dateiendungen einer oder mehrerer Dateien umzubenennen.
Zum Beispiel möchte man als DirectX-Programmierer seine gezeichneten Bitmap-Grafiken oder Wave-Sounds vor anderen schützen, damit sie nicht ohne sein Wissen in fremden Spielen verwendet werden. Dazu reicht es einfach die Endung von "bmp" zu "xyz" umzuschreiben.
Aber stellen wir uns nun vor es sind 100 Bitmap-Dateien, bei denen man die Endung austauschen muss.
Per Hand wäre das eine sehr mühevolle und langwierige Arbeit. Daher habe ich folgende Funktion geschrieben, die automatisch alle Dateiendungen der Dateien eines Ordners umbenennt.
Wichtig: Um diese Funktion nutzen zu können, benötigt man die VBEx32.DLL!
Download: VBEx32.DLL - Extended VB Library v2.1.01
Nun zur Funktion:
' Benennt Dateiendungen um ' (benötigt modVBEx32.bas!) Public Sub Rename(Path As String, _ OldExt As String, NewExt As String) Dim sFiles() As String Dim nCount As Long Dim i As Long Dim nPos As Integer Dim nBytes As Currency ' Slash ergänzen VBEx_AppendSlash Path ' Punkt vor die Endung hängen If Left$(OldExt, 1) <> "." Then OldExt = "." & OldExt If Left$(NewExt, 1) <> "." Then NewExt = "." & NewExt ' Anzahl der Dateien ermitteln und alle mit der ' Endung "OldExt" mit "NewExt" umbenennen nCount = VBEX_FileCount(Path, 0, "*" & OldExt, nBytes) If nCount >= 0 Then ReDim sFiles(nCount) nCount = VBEX_FileList(Path, 0, "*" & OldExt, _ sFiles(), nBytes) For i = 0 To nCount nPos = InStrRev(sFiles(i), ".") Name Path & sFiles(i) As _ Path & Left$(sFiles(i), nPos - 1) & NewExt Next i End If End Sub
Die Parameter der Funktion sind klar:
Zuerst das Verzeichnis, dessen Dateiendungen ihr umbenennen wollt, danach die Quell-Endung gefolgt von der Ziel-Endung.
Hier mal ein Anwendungs-Beispiel, das alle "bmp" Endungen durch "xyz" ersetzt:
Rename App.Path , "bmp" , "xyz"