ich verplan die Pfade irgentwie grad

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

dominik

Betreff: ich verplan die Pfade irgentwie grad

BeitragSo, Jun 27, 2004 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
eigentlich müssten doch alle files aus dem ordner gelöscht werden und dann das verzeichnis. irgentwi lässt sich aber der ordner nicht löschen.

Code: [AUSKLAPPEN]
Function listbeintragl()
selected = SelectedGadgetItem(belist)
  If selected >= 0 Then
    Selected_Dir$ = GadgetItemText (belist,selected)
    prot = Proceed("Wollen Sie '" + Selected_Dir$   + "' wirklich löschen?",1)
    If prot = 1 Then
      RemoveGadgetItem belist,selected

      verzl = ReadDir(pfad$ + "\" + selected_dir$)
      Repeat
        Dl$ = NextFile$(Verzl)
        If FileType(pfad$ + "\" + dl$) = 1 Then DeleteFile (pfad$ + "\" + selected_dir$ + "\" + dl$)
      Until dl$ = ""
      DeleteDir (Pfad$ + "\" + Selected_Dir$)
      CloseDir Verzl

    EndIf
  EndIf
End Function

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Jun 27, 2004 21:05
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe mir mal eine Function gebastelt die das komplette verzeichnis löscht inclusive der Unterordner und der vorhandenen Dateien !

Aber vorsichtig damit umgehen denn ich will
nicht das ihr euch die Festplatte damit radikal aufräumt!

ich bau vorsichthalber noch eine sicherheits abfrage rein.......

Code: [AUSKLAPPEN]
Delete_Dir("e:\testdir",1)

Function Delete_Dir(Pfad$,Safty)


   If safty = 1 Then
      Sicherheit  = Proceed("Sind sie sicher das  Sie dieses Verzeichnis komplett löschen wollen!"+Chr$(13)+Chr$(13)+Pfad)
      If Sicherheit <> 1 Then Return
   End If


  Olddir$ = CurrentDir()
  ChangeDir Pfad$
   Ordner = ReadDir(CurrentDir())
   Repeat
      File$ = NextFile (Ordner)
         If File$  = "" Then Exit
         If FileType(CurrentDir()+File$) = 2 Then
            If File$  <> "." And File$  <> ".." Then
               ;Unterordner gefunden
                  Delete_Dir(CurrentDir()+File$,0);<<<<<<ohne Sicherrung Rekursiv
               ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Rekursiv
               DebugLog File$
            End If                        
         Else ; = 1
            DeleteFile File$
         End If
   Forever
   CloseDir (Ordner)
   ChangeDir Olddir$
  DeleteDir (Pfad$)
End Function
[BB2D | BB3D | BB+]

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Jun 27, 2004 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
dein Problem liegt hier,
Du kannst ein Ordner nicht löschen wenn der geöffnet ist!

Code: [AUSKLAPPEN]
   DeleteDir (Pfad$ + "\" + Selected_Dir$)
      CloseDir Verzl

einfach mal tauschen......
[BB2D | BB3D | BB+]

dominik

BeitragSo, Jun 27, 2004 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
komisch wenn ich des code so schreibe:
Code: [AUSKLAPPEN]
Function listbeintragl()
selected = SelectedGadgetItem(belist)
  If selected >= 0 Then
    Selected_Dir$ = GadgetItemText (belist,selected)
    prot = Proceed("Wollen Sie '" + Selected_Dir$   + "' wirklich löschen?",1)
    If prot = 1 Then
      ChangeDir(pfad$ + "\" + Selected_Dir$)
      Notify CurrentDir()
      RemoveGadgetItem belist,selected
     
      verzl = ReadDir(CurrentDir() + selected_dir$)
      Repeat
        Dl$ = NextFile$(Verzl)
        If FileType(CurrentDir() + dl$) = 1 Then DeleteFile (CurrentDir() + dl$)
      Until dl$ = ""
      ChangeDir "..."
      CloseDir Verzl
      DeleteDir (CurrentDir() + Selected_Dir$)

    EndIf
  EndIf
End Function


dann bekomme ich aber hier diese tolle fehler meldung von XP. un zwar hier:
Code: [AUSKLAPPEN]
ChangeDir(pfad$ + "\" + Selected_Dir$)


wenn ich das aber so abänder:
Code: [AUSKLAPPEN]
ChangeDir(pfad$ + Selected_Dir$)

also ohne den strich (der aber eigentlich logischerweise darein muss) dannbekomme ich keine fehlermeldung, allerdins kommcih dann halt auich nicht in den oirdner rein.

ich hab mal ne notify meldung dahinter gemacht und die ziegt mir auch noch kurtz bevor das programm abgebrovchne wird an das ich im richitgen ordern bin.

Pfad is der Pfad der in den ordner für wo die exe is und wo die unter orner liegen. selbst wenn ich des \ daran häng, und nicht zusätzlich im code dranhäng, kommt die fehlermeldung.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Jun 27, 2004 23:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe den Code mal so geändert das das auch geht,
das Problem war wohl diese Zeile:
Code: [AUSKLAPPEN]
verzl = ReadDir(CurrentDir() + selected_dir$)

da du dich schon in diesem Ordner befindest

Code: [AUSKLAPPEN]
Function listbeintragl()
Old_Pfad$ = CurrentDir()
selected = SelectedGadgetItem(belist)
  If selected >= 0 Then
    Selected_Dir$ = GadgetItemText (belist,selected)
    prot = Proceed("Wollen Sie '" + Selected_Dir$   + "' wirklich löschen?",1)
    If prot = 1 Then
      ChangeDir(CurrentDir() + Selected_Dir$) ; in unterordner wechseln

      Notify CurrentDir() ; anzeigen

      RemoveGadgetItem belist,selected ; aus liste löschen
         ;  verzl = ReadDir(CurrentDir() + selected_dir$)

      verzl = ReadDir(CurrentDir()) ;Inhalt auslesen

      Repeat
        Dl$ = NextFile$(Verzl)
        If FileType(CurrentDir() + dl$) = 1 Then DeleteFile (CurrentDir() + dl$)
      Until dl$ = ""
      ChangeDir Old_Pfad$
      CloseDir Verzl
      DeleteDir (CurrentDir() + Selected_Dir$)

    EndIf
  EndIf
End Function
[BB2D | BB3D | BB+]

dominik

BeitragMo, Jun 28, 2004 9:07
Antworten mit Zitat
Benutzer-Profile anzeigen
danke jetzt funztz.
anstatt
Code: [AUSKLAPPEN]
Old_Pfad$ = CurrentDir()
ChangeDir Old_Pfad$


kann man doch auch einfach
Code: [AUSKLAPPEN]
changedir "..."

schreiben.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, Jun 28, 2004 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, aber es geht eben nur eine ebene zurück,

wenn du später auf verschiedene verzeichnisse oder unterverzeichnisse zugreifts geht es nicht mehr
also ist die erste version schon universell einsetztbar
und changedir "..."
wird glaube ich mit 2 punkten gemacht nicht mit 3!
[BB2D | BB3D | BB+]

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group