VERSION 5.00
Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} Kill_Files 
   Caption         =   "Kill Files"
   ClientHeight    =   9585
   ClientLeft      =   45
   ClientTop       =   435
   ClientWidth     =   6600
   OleObjectBlob   =   "Kill_Files.frx":0000
   StartUpPosition =   1  'CenterOwner
End
Attribute VB_Name = "Kill_Files"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
' Makro:        Kill_Files
' Version:      1.1
' Catia Level:  V5R19
' UIL:          English (User Interface Language)
' Autor:        Christian Obholzer
' E-Mail:       ch.obholzer@aon.at
' Erstellt:     27.10.2010
' Zweck:        Unwiederrufliches Löschen von Dateien
'-----------------------------------------------------------------------------------
' Änderungen:   05.10.2010, Christian Obholzer
'               Unterordner durchsuchen hinzugefügt
'               Datum, Name
'               Hier wird die Änderung angegeben
'-----------------------------------------------------------------------------------

Option Explicit

    '***Deklarationen
    Public objShell As Object
    Public strOrdner As String
    Public objFolder As Folder
    Public objSubFolder As Folder
    Public objFile As File
    
Private Sub cmd_Beenden_Click()

    '***Fenster schließen
    Unload Me

End Sub

Private Sub cmd_Kill_Files_Click()

    If Me.txt_Pfad.Text <> "" Then
        '***Function aufrufen
        GetFiles objFolder
        
        '***Meldung an User
        MsgBox "Die Dateien wurden unwiederruflich gelöscht.", vbInformation + vbOKOnly, "Makro erfolgreich beendet"
    Else
        '***Meldung an User
        MsgBox "Es wurde kein Ordner ausgewählt.", vbCritical + vbOKOnly, "Kein Ordner ausgewählt"
    End If

End Sub

Private Sub cmd_Ordner_auswaehlen_Click()

    '***Fehlerroutine ausschalten damit man die Ordnerauswahl abbrechen kann
    On Error Resume Next

    '***Function aufrufen
    Set objFolder = CATIA.Application.FileSystem.GetFolder(BrowseForFolder)
    
End Sub

Private Sub cmd_Ordner_oeffnen_Click()

    If Me.txt_Pfad.Text = "" Then
        '***Meldung an User
        MsgBox "Es wurde kein Ordner ausgewählt.", vbCritical + vbOKOnly, "Kein Ordner ausgewählt"
    Else
        '***Ordner öffnen
        Shell "Explorer.exe " & Me.txt_Pfad.Text, vbNormalFocus
    End If

End Sub

Function BrowseForFolder()
    
    '***Ordner auswählen
    Set objShell = CreateObject("Shell.Application").BrowseForFolder(0, "Please choose a folder", 0)
    
    '***Fehlerroutinge ausschalten
    On Error Resume Next
    BrowseForFolder = objShell.self.Path
    
    '***Ordnerpfad in TextBox eintragen
    Me.txt_Pfad.Text = objShell.self.Path
    
    '***Fehlerroutine an VBA übergeben
    On Error GoTo 0
    Set objShell = Nothing
    
    Select Case Mid(strOrdner, 2, 1)
    Case Is = ":"
        If Left(strOrdner, 1) = ":" Then
            strOrdner = False
        End If
    Case Is = "\"
        If Not Left(strOrdner, 1) = "\" Then
            strOrdner = False
        End If
    Case Else
    strOrdner = False
    End Select
    
End Function

Sub GetFiles(MyFolder As Folder)

    '***Für jede Datei die sich im Ordner befindet
    For Each objFile In MyFolder.Files
    
        If Me.chk_CATProduct.Value = True And Not Me.txt_String.Text <> "" Then
            '***Dateiendung
            If (Right(objFile.Name, 10)) = "CATProduct" Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        ElseIf Me.chk_CATProduct.Value = True And Me.txt_String.Text <> "" Then
            '***Dateiendung und String
            If (Right(objFile.Name, 10)) = "CATProduct" And (InStr(1, objFile.Name, Me.txt_String.Text)) Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        End If
        
        If Me.chk_CATPart.Value = True And Not Me.txt_String.Text <> "" Then
            '***Dateiendung
            If (Right(objFile.Name, 7)) = "CATPart" Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        ElseIf Me.chk_CATPart.Value = True And Me.txt_String.Text <> "" Then
            '***Dateiendung und String
            If (Right(objFile.Name, 7)) = "CATPart" And (InStr(1, objFile.Name, Me.txt_String.Text)) Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        End If
        
        If Me.chk_CATDrawing.Value = True And Not Me.txt_String.Text <> "" Then
            '***Dateiendung
            If (Right(objFile.Name, 10)) = "CATDrawing" Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        ElseIf Me.chk_CATDrawing.Value = True And Me.txt_String.Text <> "" Then
            '***Dateiendung und String
            If (Right(objFile.Name, 10)) = "CATDrawing" And (InStr(1, objFile.Name, Me.txt_String.Text)) Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        End If
        
        If Me.chk_stp.Value = True And Not Me.txt_String.Text <> "" Then
            '***Dateiendung
            If (Right(objFile.Name, 3)) = "stp" Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        ElseIf Me.chk_stp.Value = True And Me.txt_String.Text <> "" Then
            '***Dateiendung und String
            If (Right(objFile.Name, 3)) = "stp" And (InStr(1, objFile.Name, Me.txt_String.Text)) Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        End If
        
        If Me.chk_model.Value = True And Not Me.txt_String.Text <> "" Then
            '***Dateiendung
            If (Right(objFile.Name, 5)) = "model" Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        ElseIf Me.chk_model.Value = True And Me.txt_String.Text <> "" Then
            '***Dateiendung und String
            If (Right(objFile.Name, 5)) = "model" And (InStr(1, objFile.Name, Me.txt_String.Text)) Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        End If
        
        If Me.chk_dxf.Value = True And Not Me.txt_String.Text <> "" Then
            '***Dateiendung
            If (Right(objFile.Name, 3)) = "dxf" Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        ElseIf Me.chk_model.Value = True And Me.txt_String.Text <> "" Then
            '***Dateiendung und String
            If (Right(objFile.Name, 3)) = "dxf" And (InStr(1, objFile.Name, Me.txt_String.Text)) Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        End If
        
        If Me.chk_pdf.Value = True And Not Me.txt_String.Text <> "" Then
            '***Dateiendung
            If (Right(objFile.Name, 3)) = "pdf" Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        ElseIf Me.chk_pdf.Value = True And Me.txt_String.Text <> "" Then
            '***Dateiendung und String
            If (Right(objFile.Name, 3)) = "pdf" And (InStr(1, objFile.Name, Me.txt_String.Text)) Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        End If
        
        If Me.chk_xls.Value = True And Not Me.txt_String.Text <> "" Then
            '***Dateiendung
            If (Right(objFile.Name, 3)) = "xls" Or (Right(objFile.Name, 4)) = "xlsx" Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        ElseIf Me.chk_xls.Value = True And Me.txt_String.Text <> "" Then
            '***Dateiendung und String
            If (Right(objFile.Name, 3)) = "xls" And (InStr(1, objFile.Name, Me.txt_String.Text)) Or _
            (Right(objFile.Name, 4)) = "xlsx" And (InStr(1, objFile.Name, Me.txt_String.Text)) Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        End If
        
        If Me.chk_CATProduct.Value = False And Me.chk_CATPart.Value = False And Me.chk_CATDrawing.Value = False And Me.chk_stp.Value = False And _
        Me.chk_model.Value = False And Me.chk_dxf.Value = False And Me.chk_pdf.Value = False And Me.chk_xls.Value = False And Me.txt_String.Text <> "" Then
            '***Dateiendung und String
            If (InStr(1, objFile.Name, Me.txt_String.Text)) Then
                '***ListBox mit Filename füllen
                Me.lst_Status.AddItem (objFile.Name)
                '***es wird der letzte Eintrag angezeigt und blau hervorgehoben
                Me.lst_Status.ListIndex = Me.lst_Status.ListCount - 1
                '***Datei löschen
                Kill (objFile.Path)
            End If
        End If
        
    Next

    If Me.chk_Unterordner.Value = True Then
        '***rekursive Funktion/Unterordner durchsuchen
        For Each objSubFolder In MyFolder.SubFolders
            '***Function aufrufen
            GetFiles objSubFolder
        Next
    End If
    
End Sub
