Microsoft Excel

Herbers Excel/VBA-Archiv

Dir() liefert unerwünschte Aliase

Betrifft: Dir() liefert unerwünschte Aliase von: AleXSR700
Geschrieben am: 03.11.2020 09:43:44

Hallo zusammen,


lich versuche gerade mithilfe der Dir() zu überprüfen, ob eine Datei vorhanden ist oder nicht. Leider werden hierbei aktuell auch Dateinamen akzeptiert, die nicht exakt dem Namen entsprechen, sondern nur diesen beinhalten.


Bsp.: CheckFilename = "Testname", dann liefert mir dir auch einen Wert für "1Testname332dd".


Erkennt jemand, wo mein Fehler liegt und könnte mir weiterhelfen?

 
    CheckFilename = Cells(1, 1).Value
    CheckFilename = Left(CheckFilename, InStr(CheckFilename, ".") - 1)
    strFileExists = Dir(FileFolder & CheckFilename & "_signed.pdf")
    PauseCounter = 1
    Do
    If Dir(strFileExists) = "" Then
    Application.Wait (Now + TimeValue("0:00:05"))
    End If
    PauseCounter = PauseCounter + 1
    Loop Until Dir(strFileExists) <> "" Or PauseCounter = 90


Vielen Dank für eure Hilfe.


Viele Grüße

Alex

Betrifft: AW: Dir() liefert unerwünschte Aliase
von: Daniel
Geschrieben am: 03.11.2020 10:12:11

Hi
die Prüfung ist falsch.

wenn strFileExist = Dir(…)
dann if strFileExists = ""

Dir() liefert dir den Filenamen, wenn es eine Datei gefunden hat und den Leerstring, wenn nicht.
aber auf dieses Ergebnis nochmal ein DIR draufzusetzen ist Unsinn.

Gruß Daniel

Betrifft: AW: Dir() liefert unerwünschte Aliase
von: AleXSR700
Geschrieben am: 03.11.2020 10:32:08

Hallo Daniel,

vielen Dank! Genau das habe ich eben auch getestet und wollte es hier gerade als Lösung schreiben.

Aber was ich nicht verstehe: Wieso führt ein erneutes Dir() bei der Bedingung zu einem Ergebnis mit Aliasen? Wieso kommt hier nicht erneut ein Leerstring heraus? Ist es aus Sicht der Codes dann Dir("") und das wäre identisch mit Dir("*")?

Viele Grüße
Alex

Betrifft: AW: Dir() liefert unerwünschte Aliase
von: Daniel
Geschrieben am: 03.11.2020 10:37:34

Hi
Dir("") liefert bei mir die erste Datei im aktuellen Verzeichnis (welche das immer auch sein mag) und scheint damit das gleiche zu bewirken wie Dir("*")
da jede Datei einen Dateinamen haben muss, macht es keinen Sinn nach einer konkreten Datei mit Namen "" zu suchen.
Gruß Daniel

Betrifft: AW: Dir() liefert unerwünschte Aliase
von: AleXSR700
Geschrieben am: 03.11.2020 10:47:53

Hallo Daniel,

verstehe. Das erklärt auch das seltsame Ergebnis bei einer meiner Zwischenversuche. Dort hatte ich nämlich Testweise alle Aliase gelöscht und dann kam die namentlich erste Datei des Verzeichnisses.

Vielen Dank und viele Grüße :)

Alex

Betrifft: AW: Dir() liefert unerwünschte Aliase
von: Luschi
Geschrieben am: 03.11.2020 10:50:02

Hallo Alex,

so durchläuft man ein Verzeichnis und ermittelt alle Dateien mit einem bestimmten Muster:
Sub MachMal()
    s1 = "F:\Daten\Downloads\??12*.xlsx"   ''3. u. 4. Stelle '12'
    ''1. Suche vor der Schleife!
    s2 = Dir(s1, vbNormal)
    Do While s2 <> ""
       Debug.Print s2
       ''Weitersuche in der Schleife
       s2 = Dir()   'nächste Datei mit gleichem Filter ermitteln
    Loop
End Sub
Gruß von Luschi
aus klein-Paris