daten löschen

  • VB

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • daten löschen

    hallo,

    mein problem ist folgendes:

    ich habe eine ziemlich komplexe ordnerstruktur und möchte bestimmte dateien, egal wie oft sie vorkommen in allen ordnern löschen.

    betroffen dürfen jedoch nur dateien und ordner sein, die auf gleicher ebene, oder hinter dem ausgeführten script liegen.

    könnte in vb6 geschrieben werden, ein standard script ohne oberfläche würde aber auch reichen.

    kann mir jemand helfen?

    hauptproblem bei vb6 war bisher dass
    a: die unterordner nicht berücksichtigt wurden
    b: alles abgebrochen wurde, wenn eine datei garnicht vorhanden war. (das weiß ich vorher nicht)
  • naja, nicht wirklich...
    ich will ja nicht alles löschen, sondern nur bestimmte dateien.

    mein versuch sah etwa so aus: (funktioniert leider nicht)



    Private Sub Command1_Click()
    Unload Me
    End Sub

    Private Sub command2_click()

    'Pfad durchsuchen
    Dim xpath As String

    'gesuchte Files keine Platzhalter
    Dim xSF As String
    Dim xfn As Long

    'Datenfeld zum Speichern der Liste
    ReDim xArray(0) As String

    'Array index
    Dim xln As Long
    Dim xi As Long

    'Pfad durchsuchen
    xpath = "App.Path"

    'gesuchter Filename enthält folgenden String :
    xSF = ".prot"

    xSF = UCase(xSF)

    'Liste speichern Datenfeld
    Call xDirArray(xpath, xArray(), xln, xSF)

    'Ausgabe Array inhalt z.B.:
    For xi = 1 To UBound(xArray)
    Debug.Print xArray(xi)
    Next xi
    End Sub

    Public Sub xDirArray(xpath As String, xArray() As String, xln As _
    Long, xSF As String)
    Dim xa As Long
    Dim xDir As String
    ReDim xt(0) As String
    Dim xi As Long

    xDir = Dir$(xpath & "\*.*", vbNormal Or vbReadOnly Or vbHidden _
    Or vbSystem Or vbVolume Or vbDirectory Or vbArchive)

    '"\*.*" darf nicht verändert werden
    xa = 0

    If Len(xDir) > 0 Then
    xt(0) = xDir
    End If

    Do While Len(xDir) > 0
    xDir = Dir
    If Len(xDir) > 0 And Not xDir = "." And Not xDir = ".." Then

    xa = xa + 1
    ReDim Preserve xt(xa)
    xt(xa) = xDir
    End If
    Loop

    For xi = 0 To xa
    If Len(xt(xi)) = 0 Then
    Exit For
    ElseIf Not xt(xi) = "." And Not xt(xi) = ".." Then
    If Len(Dir(xpath & "\" & xt(xi), vbNormal Or vbReadOnly _
    Or vbHidden _
    Or vbSystem Or vbVolume Or vbDirectory Or vbArchive)) _
    > 0 Then

    'vbDirectory =16
    If Not (GetAttr(xpath & "\" & xt(xi)) And _
    vbDirectory) = vbDirectory Then

    If Len(xSF) > 0 Then
    If InStr(1, UCase(xt(xi)), xSF) > 0 Then
    xln = xln + 1
    ReDim Preserve xArray(xln)
    xArray(xln) = xpath & "\" & xt(xi)
    End If
    End If
    Else
    Call xDirArray(xpath & "\" & xt(xi), xArray(), _
    xln, xSF)
    End If
    End If
    End If
    Next xi


    End Sub
  • Tut mir leid aber da kann ich dir auch nicht weiter helfen.
    letzte lösung bestimmte Ordner die leer sind löschen:

    Max = GetAllFiles(LCase(Text1.Text), Such, Files, _
    (Check1.Value = Checked))


    Sub DeleteEmptyFolder(ScanPfad)
    Set MyFSO = CreateObject("Scripting.FileSystemObject")

    Set PathObject = MyFSO.GetFolder(ScanPfad)
    Set SubFolders = PathObject.SubFolders
    For Each SubFoldersNow In SubFolders
    Set FileObject = SubFoldersNow.Files
    Set SubSubFolders = SubFoldersNow.SubFolders
    fc = FileObject.Count
    pc = SubSubFolders.Count

    On Error GoTo errordel
    If fc = 0 And pc = 0 Then
    SubFoldersNow.Delete
    Else
    DeleteEmptyFolder (SubFoldersNow.ParentFolder + "\" + SubFoldersNow.Name)
    End If
    Next

    Set SubFolders = PathObject.SubFolders
    For Each SubFoldersNow In SubFolders
    Set FileObject = SubFoldersNow.Files
    Set SubSubFolders = SubFoldersNow.SubFolders
    fc = FileObject.Count
    pc = SubSubFolders.Count
    If fc = 0 And pc = 0 Then
    SubFoldersNow.Delete

    End If

    Next
    End Sub
  • NEIN
    ich möchte keine leeren ordner löschen!

    ich möchte dateien, mit bestimmten namen/dateiendungen löschen!
    die sich irgendwo in einem geflecht von unterordnern befinden.
    die doppelt und 10fach vorkommen können, oder auch garnicht.

    die suche nach diesen dateien soll im verzeichnis des scripts beginnen und von dort aus aufwärts.
    nicht darunter und nicht daneben.

    sonst NICHTS:rolleyes:
  • es ist ja schön, dass du auf biegen und brechen versuchst mir zu helfen...

    aber benutze doch bitte die editieren funktion anstatt 3 beiträge hintereinander zu schreiben.

    hat auch irgendeiner deiner links einen hinweis für mich, der mir weiterhilft?!
  • GTA-R schrieb:

    Ach ja kannste' de mal meine Software bewerten.
    THX
    Hier<<
    :D


    doppelpost 1

    GTA-R schrieb:

    Ach ja hier is velleicht was , was dir weiterhilft (Velleicht)

    <<ENTER>>


    :(

    doppelpost 2

    GTA-R schrieb:

    Velleicht findest de hier auch noch was:
    BESTE SEITEN:
    Panet Source Code
    TheCodeProject.com


    dreifachpost omg

    noch son ding -> verwarnung
  • du könntest das rekursiv programmieren, ich weiss aber nicht wie das mit vb geht (kann nur java, C/C++)

    also deine Funktion holt sich den Inhalt des Verzeichnisses, liest einen Eintrag nach dem andern wenn es ein verz. ist ruft die Funkton sich selber auf mit dem neuen Verz., wenn es kein Verz. ist wird auf deine gew Datei getest und dann gelöscht.
    [SIZE=1]
    Was ist der Unterschied zwischen einem U-Boot und MS Windows?
    Keiner, sobald man ein Fenster aufmacht, fangen die Probleme an
    Alle Tips von mir ohne Gewähr und auf eigenes Risiko !!
    UP1 UP2 UP3[/SIZE][SIZE=1]
    [/SIZE]