Alle Dateien in einem Ordner klein/groß schreiben

Hallo zusammen,

ich habe folgendes Problem.

Ich bin dabei in VB6 ein Programm zu schreiben, dass Dateien in einem beliebigen Ordner auswählt und diese in einer FileListBox anzeigt. Diese Dateinamen sollen dann je nach Eingabe des Benutzers üder Radio-Buttons entweder groß bzw. klein geschrieben werden.

Ich habe leider keine Ahnung wie ich anfangen soll und wie die Routine zur Abfrage und die passende Syntax aussehen soll.

Vielen Dank im Voraus!

Hallo Rap_DEaLEr!

erfine nicht das Rad neu!
Eine der Optionen von dem Tool macht nichts anderes als Groß/Klein-Schreibung zu Ändern
http://www.liberkey.com/en/catalog/file_management/r…
oder
http://www.bulkrenameutility.co.uk/

MfG

Hallo Waldemar_Wesner,

vielen Dank für die Links. Sie sind sicher hilfreich und das Groß-/Kleinschreiben funktioniert wahrscheinlich auch, nur möchte ich das eingenständig machen und mich nicht fremder Software bedienen. Das ganze hat ausbildungstechnische Gründe und sollte daher von mir selbst in Angriff genommen werden :smile: Vielleicht noch andere Vorschläge?

Vielen Dank im Voraus und freundlichen Grüße

Hallo Rap_DEaLEr!

dann häte ich ein paar Fragen:
1.Was sol angezeigt werden?
-Dateinamen (mit/ohne Erweiterung)?
-Pfadnamen?
2.Sortierung der Anzeige?
3.Was soll geändert werden
-Dateinemen?
-Erweiterungen?
-Pfade?
4.Wie soll es geändert werden
-nur Anzeige?
-oder soll die ‚Case‘-Änderung gespeichert werden?

MfG
W.W.

PS.:Es gibt wohl mehr Fragen, als die Aufgabe vermuten lässt!

Hallo Waldemar_Wesner

Zu den Fragen:

  1. angezeigt werden soll das Ergebnis im Endeffekt nicht. Die Groß- bzw Kleinschreiben soll „einfach gemacht werden“ ohne Ausgabe des Ergebnisses.

2.Ergibt sich aus 1.

3.Es soll der komplette Dateiname geändert werden. Aus TEST.txt soll test.txt und umgekehrt aus test.txt TEST.txt werden.

4.WIE genau das letztendlich geschehen soll (weiß ich nicht):

Private Sub cmdExec_Click()
Dim fs, f, f1, filelist()
Dim i, h As Integer, j As Integer
i = 0
h = 1
ReDim filelist(0)
Set fs = CreateObject(„Scripting.FileSystemObject“)
Set f = fs.GetFolder(DirListBox.Path)
'Für jede Datei im Ordner…
For Each f1 In f.Files
'solange bis das Ende des Dateinamens erreicht ist mache Folgendes
MsgBox h
h = h + 1
Next
End Sub

soweit habe ich es schon hinbekommen.

Dieser Code gibt einfach die Anzahl der zu ändernden Dateien in einem Ordner aus, der vorher durch eine DriveListBox ausgewählt wird. Wo „MsgBox h
h = h + 1“ steht soll die Routine zum Umbennen des Dateinamens eingesetzt werden.

Vielen Dank für das Engagement!

Freundliche Grüße

Viel Spaß, !

mein Rat, Finger weg von DriveListBox um den Versuchen in DriveRoot (egal welche)

Wenn man im ‚c:‘ landet, kann man etliche Dateien gar nicht umbenennen (geschweige denn löschen)
Aber genug von Standpauken.
Hiermit kann man die Dateien (samt der Erweiterung) in großbuchstaben umwandeln

Private Sub cmdExec\_Click()
Dim fs As **IWshRuntimeLibrary.FileSystemObject** , f As **IWshRuntimeLibrary.Folder** , f1 As **IWshRuntimeLibrary.File** , filelist() 'hierfür Referenz zu 'Windows Scripting Host' hinzufügen
'und im Allgemenen programmiert es sich leichter wenn man(n) das 'Object Model' nutzt!
Dim i, h As Integer, j As Integer
i = 0
h = 1
ReDim filelist(0)
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder("irgendein 'Opfer'-Verzeichnis (z.B. Kopie von....)")
'Für jede Datei im Ordner..
For Each f1 In f.Files
'solange bis das Ende des Dateinamens erreicht ist mache Folgendes
f1.Move f1.ParentFolder & "\" & **UCase** (f1.Name)
h = h + 1
Next
End Sub

Hallo Waldemar_Wesner,

vielen, vielen Dank hat echt super funktioniert!

Freundliche Grüße

Hallo,
mit einer Filelistbox habe ich noch nie gearbeitet.
Bei einer normalen Listbox würde ich einfach jeden Eintrag auslesen, per ucase() oder lcase() groß- oder kleinschreiben und wieder zurückschreiben

Wenn du nur den Inhalt der Filelisbox ändern willst, geht das vielleicht analog. Anderfalls musst du eben jede der Dateien in der filelistbox umbenennen und die Filelistbox neu einlesen.

Hallo,
auf die schnelle kann ich keine konkrete antwort geben.
MfG Gerd Gosdeck