Daten-Löschen

  • Hallo
    Ich wollte mal etwas probieren aber erstmal fragen ob es funktinert.
    Ihr kennt sicherlich alle das Problem das man manchen datein nicht löschen kann....
    Ich wollte ein Programm bauen das genau das kann :)
    Falls einer nicht weiß was ich meine "Klick "

    Ist es möglich und wie fang ich an.....

    MfG Brokolie

  • Ja, das ist möglich :)
    Du solltest dir die Funktion FileSetAttrib anschauen.
    Da kann man z.B. das Schreibgeschützt-Attribut einer Datei entfernen.

    [autoit]

    $Pfad = FileOpenDialog("Datei auswählen...","","Alle Dateien (*.*)")
    FileSetAttrib($Pfad,"-R")

    [/autoit]

    Wenn ich deine Frage richtig verstanden hab, müsste das das sein, was du suchst ;)

  • :) soo^^ wenn wer nicht löschbare datein hat bitte mal testen :P

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    #NoTrayIcon

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("FileFucker by Brokolie", 362, 182, 218, 127)
    $Pic = GUICtrlCreatePic(@ScriptDir & "\bg.jpg", 0, 0, 362, 182)
    GUICtrlSetState(-1,$GUI_DISABLE)
    $File = GUICtrlCreateButton("File", 48, 80, 137, 33, $BS_DEFPUSHBUTTON)
    $Delete = GUICtrlCreateButton("Delete", 192, 80, 137, 33, $BS_DEFPUSHBUTTON)
    $Exit = GUICtrlCreateButton("Exit", 120, 120, 137, 33, $BS_DEFPUSHBUTTON)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Exit
    Exit
    Case $File
    $Pfad = FileOpenDialog("Datei auswählen...","","Alle Dateien (*.*)")
    Case $Delete
    FileSetAttrib($Pfad,"-R")
    FileDelete ( $Pfad )

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

    EndSwitch
    WEnd

    [/autoit]
  • Hi,

    Zitat

    soo wenn wer nicht löschbare datein hat bitte mal testen


    Dein Code meint aber, wer Dateien mit Schreibschutzattribut hat....
    Dateien im Zugriff können damit nicht gelöscht werden (wie z.Bsp. mit Unlocker).

    ;-))
    Stefan

  • unlocker hatte ich auch mal benutz, als ich solche dateien nicht kopieren konnte, ich habe einfach unlocker mit parametern aufgerufen (aus autoit), wie könnte man dass ohne diesen unlocker programm machen?

  • Hi,

    es müsste ein DLL Aufruf mit lösen des FileHandles sein. Keine Ahnung wie man das in die Praxis umsetzt.
    BTW: Kopieren sollte eigentlich möglich sein. Löschen, verschieben oder überschreiben nicht.

    Sry.

    ;-((
    Stefan

  • Es gibt ja mehrere Typen von nivht löschbaren Dateien:

    - schreibgeschützte Dateien,
    - Dateien, die grade verwendet werden,
    - beschädigte Dateien.

    sry wenn ich was vergessen hab.

    Zu schreibgeschützten ist ja schon eine Lösung da, und bei Dateien, die grade verwendet werden, müsste man alle Handles, die auf die Datei verweisen, abfragen, und dann entfernen/das Programm, von dem das Handle stammt, löschen. Beschädigte Dateien kann man nicht so einfach wegkriegen, wenn ich mich nit irre, da müsste man die FAT direkt ändern und die Fragmente von der Platte löschen...

    Edit: n bisschen zu spät... :rolleyes: