PEEP Delete dir

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Michi1988

Betreff: PEEP Delete dir

BeitragSo, Apr 11, 2004 2:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Michi möchte ein eigenes Installations und De installationsprogramm
programmieren. Das Problem:
Ich möchte keine Datei im WindowsOrdner anlegen wo alle Dateien des Spiels drin gespeichert sind like:

c:/Game/City Manager v1.0/CM2004.exe

sondern einfach nur deletedir("c:/Game/City Manager v0.1")
ist das eine reine Vorsichtsmaßnahme das man nur leere Ordner löschen
kann oder ist das in irgendeinem Patch behoben worden?
(was bestimmt jeder schon mal ausprobiert hat: nen kleines alles wech im Win Ordner Progg Wink )
 

René Meyer

BeitragSo, Apr 11, 2004 2:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst nur leere Ordner löschen; das ist so gedacht.

Du kannst aber alle Dateien aus einem Ordner auslesen und die nacheinander löschen.
www.blitzbasic.de | Das Buch zu Blitz Basic: www.schreibfabrik.de/txt/bbb

Michi1988

BeitragSo, Apr 11, 2004 2:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ordner auslesen: S.176
Ich weiß das es so geht aber is das nich nen bissl umständlich.
Aber egal.Mach ich es so.

Danke

TheShadow

Moderator

BeitragSo, Apr 11, 2004 11:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Type dir1
   Field name$
End Type
Type dir2
   Field name$
End Type



;------------------------------------------------------------------
;Löscht alle Dateien in einem Verzeichnis
;path=Startverzeichnis
;------------------------------------------------------------------
Function dirkiller(path$)
  .again
  pathid=ReadDir(path$)
  If pathid=0 Then Return
  Repeat
    file$=NextFile$(pathid)
    If file$="" Then Exit
    If file$<>"." And file$<>".." Then
      Select FileType(path$+file$)
      Case 1
        countfile=countfile+1
        DeleteFile path$+file$
      Case 2
        countdir=countdir+1
        dir1.dir1 =New dir1
        dir2.dir2 =New dir2
        dir1\name$=path$+file$+"\"
        dir2\name$=path$+file$+"\"
      End Select
    End If
  Forever
  CloseDir pathid
  dir1=Last dir1
  If dir1<>Null Then
    path$=dir1\name$
    Delete dir1
    Goto again
  End If
  For i=1 To countdir
    dir2=Last dir2
    DeleteDir dir2\name$
    Delete dir2
  Next
End Function
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Jolinah

BeitragSo, Apr 11, 2004 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier noch meine Rekursive Version oder wie man das nennt Very Happy

Code: [AUSKLAPPEN]

Function DeleteOrdner(pfad$)

  If Not FileType(pfad$) = 2 Then Return 0
   
  dir = ReadDir(pfad$)
  If dir = 0 Then Return 0
   
   
  Repeat

    file$ = NextFile(dir)
    If file$ = "" Then Exit
   
    If file$ <> "." And file$ <> ".."
      If FileType(pfad$ + "\" + file$) = 1 Then DeleteFile(pfad$ + "\" + file$)
      If FileType(pfad$ + "\" + file$) = 2 Then DeleteOrdner(pfad$ + "\" + file$)
    EndIf
   
  Forever

  CloseDir(dir)
  DeleteDir(pfad$)
   
  Return 1

End Function


Die Funktion löscht die Dateien die in einem Ordner sind, und ruft sich selbst wieder für alle Unterordner auf. Danach wird noch der Ordner selber gelöscht der am Ende der Funktion ja keine Dateien mehr enthält. (DeleteDir(pfad$))

Michi1988

BeitragSo, Apr 11, 2004 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke an euch Leute.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group