Letzten Dateinamen im Verzeichnis finden
#1
Hallo Leute,

mit dem Befehl  Debug.Print Dir("C:\Musik\*.mp3") bekomme ich den ersten Namen einer im Verzeichnis Musik stehenden mp3-Datei.

Ich suche nach einem Befehl der mir den letzten Namen einer Musikdatei in diesem Verzeichnis ausgibt.  Ich weiß, das ich so etwas mit Durchzählen der einzelnen Dateien im Verzeichnis über eine For Each Schleife unter Einbindung des Scripting.FileSystemObject's erreichen kann. Im Rahmen verbesserte Effizienz suche ich aber eine Möglichkeit einer verbesserten, also direkten Ausgabe dieses Dateinamens.

Wenns nicht geht, ok.
Schreibt mir bitte auch das.
Antwortento top
#2
Hallo,

mal aus der Hilfe zur Dir-Funktion

Zitat:Tip Die Dateinamen werden unsortiert zurückgegeben. Bei Bedarf können Sie die zurückgegebenen Dateinamen in einem Datenfeld speichern und das Datenfeld anschließend sortieren.

Die letzte Datei wäre dann mit Ubound(Datenfeld) erreichbar.
Gruß Stefan
Win 7 / Office 2007
Antwortento top
#3
Hallo Stefan,

also scheints Hoffnung zu geben. Das bräuchte ich dann aber doch noch etwas genauer.
Antwortento top
#4
Hallo,

der DOS-Befehl

dir /o-d sortiert die Ausgabe mit dem neuesten zuerst. Also mit

mit

ar = Split(CreateObject("wscript.shell").exec("cmd /c Dir " & sPath & sFile & " /o-d").stdout.readall, vbCrLf) (0)

steht in der Variablen ar der Pfad und Dateiname der am letztem abgespeicherten Datei.

mfg

PS: Formel von snb

ungeprüft, eventuell mit dir "" & ... "" /b/o-d
Antwortento top
#5
Danke Leute. Und speziellen Dank auch an snb. Hätte ich nie und nimmer hinbekommen.

Auf dem Laufwerk C im Ordner Test lautet die von mir jetzt geprüfte Formel:


Code:
ar = Split(CreateObject("wscript.shell").exec("cmd /c Dir " & "C:\Test\" & " /b/o-d ").stdout.readall, vbCrLf)(0)
Antwortento top
#6
Hallo Leute,

bezüglich der Ermittlung des letzten Dateinamens in einem Verzeichnis möchte ich noch eine eigene Lösung vorstellen. Zwar kann der Dateiname nicht
mittels einer Programmierzeile ermittelt werden, dafür braucht man aber auch keine Superprogrammierkenntnisse und sauschnell ist das kleine Makro
auch.



Code:
Sub Ermittlung_des_letzten_Dateinamens()
Dim Dateiname, LetzterDateiname
Dateiname = Dir("C:\Testordner\")
While Dateiname <> ""
LetzterDateiname = Dateiname
Dateiname = Dir
Wend
Debug.Print LetzterDateiname
End Sub
Antwortento top
#7
Hi,

(08.06.2016, 15:56)santana schrieb: bezüglich der Ermittlung des letzten Dateinamens in einem Verzeichnis möchte ich noch eine eigene Lösung vorstellen.

gute Lösung, ich habe es so übernommen, weil ich nicht weiß, wie ich das Debug.Print verwende:
Code:
Option Explicit

Sub Ermittlung_des_letzten_Dateinamens()
   Dim Dateiname, LetzterDateiname
   Dateiname = Dir("C:\Testordner\")
   While Dateiname <> ""
      LetzterDateiname = Dateiname
      Dateiname = Dir
   Wend
   MsgBox LetzterDateiname
'   Debug.Print LetzterDateiname
End Sub
Antwortento top
#8
Hallo Ralf,

(08.06.2016, 16:30)Rabe schrieb: weil ich nicht weiß, wie ich das Debug.Print verwende:

die Ergebnisse werden ins Direktfenster (STRG+G oder über Menüleiste Ansicht - Direktfenster) geschrieben.
Gruß Stefan
Win 7 / Office 2007
Antwortento top
#9
Hi,

(08.06.2016, 18:51)Steffl schrieb: die Ergebnisse werden ins Direktfenster (STRG+G oder über Menüleiste Ansicht - Direktfenster) geschrieben.

ok. Danke.
Antwortento top
#10
Hi,
warum auch immer, bei mir wird nicht der letzte Dateiname im Verzeichnis angezeigt, sondern einer irgendwo dazwischen. Keine Ahnung warum.
Mit freundlichen Grüßen  Smile
Michael
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste