neuste Datei in einem Ordner suchen

Bamboocha_10

Mitglied
Hallo,
ich möchte aus einem Ordner die zu letzt erstellte Datei "rausfischen"
aus diesem Threat http://www.tutorials.de/forum/visual-basic/161088-ordner.html
und von dieser Hompage
http://www.vbarchiv.net/workshop/workshop43s3.html
hab ich mir Anregungen geholt und folgendes programmiert:

Code:
Public fso As New FileSystemObject

Sub neuse_Datei()

Dim pfad As String
Dim folder As folder
Dim file As file
Dim datei As String
Dim cur As file



pfad = "D:\Neuer Ordner"

Set folder = fso.GetFolder(pfad) 

For Each file In folder.Files
    If cur.Name = "" Then
      cur.Name = file.Name
    End If
    If file.DateCreated > cur.DateCreated Then datei = file.Name
    Next
    
MsgBox datei
End Sub

Fehlermeldung in Zeile if cur.Name = "" Then:
Object variable or With Block variable not set

Irgendwie scheint das mit Dateien nicht zu funktionieren. Was hab ich falsch gemacht?
 

Tody83

Mitglied
Hi...

So probier das mal....

Visual Basic:
Public fso As New FileSystemObject

Sub neuse_Datei()

Dim pfad As String
Dim folder As folder
Dim file As file
'Dim datei As String 'wird nicht benötigt
Dim cur As file

pfad = "D:\"    'Pfad setzen...
If Not Right(pfad, 1) = "\" Then pfad = pfad & "\" '... und Abschließen

Set folder = fso.GetFolder(pfad)
Set cur = fso.GetFile(pfad & Dir(pfad)) 'cur (Neueste gefundene) auf erste setzen

For Each file In folder.Files
    
'    If cur.Name = "" Then  'Brauchen wir auch nicht mehr
'      cur.Name = file.Name 'deto
'    End If                 'deto

    'Abgeändert - "cur" neu setzten wenn "file" neuer ist...
    If file.DateCreated > cur.DateCreated Then Set cur = fso.GetFile(pfad & file.Name)
    Next
    
MsgBox cur.Name 'neueste Datei
End Sub

lg Tody
 

Bamboocha_10

Mitglied
Ich glaub du verfolgst mich ;)
Vielen Dank. Funktioniert super. Diese Zeile
Code:
Set cur = fso.GetFile(pfad & Dir(pfad))
hab ich nicht hinbekommen.
 
K

karinverzweifelt

Hi,

habe Problem in Zeile 17: .Files

Fehler beim Kompilieren:
Methode oder Datenobjekt nicht gefunden.

Fehlt vielleicht ein Verweis?

Habe Office XP.

Danke für Infos

Karin
 
K

karinverzweifelt

Hi,

danke, habe es ausprobiert und funktioniert.

Wie würde das Skript als Late-Binding aussehen?

Habe Probleme mit Dim file As file, Dim folder As folder, usw.

Ich soll möglichst keine Verweise verwenden und verstehe es nicht ganz, das
nun umzusetzen.

Danke für Code-Beispiele.

Liebe Grüße
Karin
 

Yaslaw

n/a
Moderator
Visual Basic:
Dim fso As object
Dim folder As object
Dim file As object

Set fso = CreateObject("Scripting.FileSystemObject")
...
Set folder = fso.GetFolder(pfad) 
...