Filefindfirstfile findet bestimmte .lnk nicht

  • Hey
    Ich bin sehr faul was meinen Desktop angeht und deswegen habe ich mir eine Sorting machine gemacht die auch sehr gut funktioniert nur habe ich mit bestimmten .lnk (Lnk nicht ink) Probleme bei allen anderen .lnk und .ink funktioniert es

    [autoit]


    While 1
    $lnk = FileFindFirstFile("*.lnk")
    If $lnk = -1 Then
    Sleep(500)
    Else
    flnk()
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Func flnk()
    Local $filelnk = FileFindNextFile($lnk)
    If @error Then Sleep(1000)
    $iMsgBoxAnswerlnk = MsgBox(36,"Ist " & $filelnk & "ein spiel?","Ist "&$filelnk&" ein Spiel?")
    Select
    Case $iMsgBoxAnswerlnk = 6 ;Yes
    FileMove(@DesktopDir &"\"&$filelnk,@DesktopDir &"\Spiele\"&$filelnk)
    $lnk = -1
    FileClose($lnk)
    Case $iMsgBoxAnswerlnk = 7 ;No
    FileMove(@DesktopDir &"\"&$filelnk,@DesktopDir &"\Programme\"&$filelnk)
    $lnk = -1
    FileClose($lnk)
    EndSelect
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    FileClose($lnk)

    [/autoit]

    Das ist nur die .lnk funktion da alle anderen endungen funktionieren
    Die beiden .lnk die nicht damit funktionieren sind

    Selbst wenn ich direkt nach ("*lua*") usw suche findet er nichts was sehr komisch ist

    Edit: Denke der fehler ist gefunden die dateien waren in einem anderen Desktop ordner von dem ich noch nie etwas gehört habe o.O?
    Ich muss nurnoch herausfinden wie ich in diesem ordner suchen lasse :/

    LG Chakratos

    4 Mal editiert, zuletzt von chakratos (12. August 2013 um 01:26)

  • Moin!

    Ich würde die Funktion _FileListToArray verwenden. Damit hast du sofort die Namen aller Dateien in einem praktischen Array, das du dann weiter verarbeiten kannst.

    Auf jeden Fall kannst folgendes Snippet zum debuggen nehmen, um zu sehen, ob irgend eine Datei nicht erkannt wird:

    [autoit]

    #include<Array.au3>
    #include <File.au3>

    [/autoit][autoit][/autoit][autoit]

    $lnk = _FileListToArray(@DesktopDir)
    _ArrayDisplay($lnk)

    [/autoit]


    Sanfte Grüsse :D

  • Vielen Dank für die Debug Funktion :)
    Das problem war das die .lnk dateien in einem anderen Desktop verzeichnis waren und nicht im eigentlichen (habe das noch nie gesehen)
    Das heißt die dateien wurden auf dem desktop angezeigt waren aber eigentlich garnicht da sondern in einem anderen desktop ordner unter Benutzer/öffentlich

    LG Chakratos

  • Richtig den 2. pfad meinte ich leider erkennt mein Programm es nicht wenn sich Dateien in diesem Ordner befindens


    Den Pfad solltest du eigendlich mit dem Macro @DesktopDir ansprechen können:

    [autoit]

    ConsoleWrite(@DesktopDir)

    [/autoit]


    Ansonsten sieh dir mal die restlichen Macros an, ob was für dich dabei ist. Wenn da nichts passendes ist, kannst du den Pfad ja auch "von Hand" übergeben...

    *edit*
    James: Jo, ist mir auch grad aufgefallen, dass ich das falsche Macro genommen hab. Copy/Paste Fail ;(

    @DesktopCommonDir ist natürlich richtig...