Code archives/File Utilities/Remove Annoying Backup files

This code has been declared by its author to be Public Domain code.

Download source code

Remove Annoying Backup files by Giano2002
Works also with commandline and drag&drop

here the forum to post
http://www.blitzbasic.com/bbs/posts.php?topic=15294
;***********************************************************
;***	REMOVE ANNOYING BACK FILE - By Gianluca SCLANO
;***	sclano@hotmail.com
;***  Intensive Works
;***********************************************************
;*** 
;*** NOTES:
;*** This program permits to remove annoyng blitz 
;*** backup file from folders, uses command line and 
;*** drag & drop.
;*** Remove also 
;*** 
;***********************************************************
;***********************************************************
Type File
	Field name$
End Type
;***********************************************************
;*** FILTERS: here add/remove your personal filter
;***********************************************************
.FILTERS
Data 4 ; <- total number
Data ".bak",".bb_bak","thumbs.db",".tmp" ;<- filters 

;***********************************************************
;*** Scan directory for filtered files
;***********************************************************
Function scanDir(path$,filter$, recursive=True)
	If right$(path,1)<>"\" Then path$= path$+"\"
	If FileType(path$)=0 Then Return 0
	filter = Upper$(filter$)
	myDir=ReadDir(path$)
	counter=0
	; Let's loop forever until we run out of files/folders to list!
	Repeat
	; Assign the next entry in the folder to file$
	file$=NextFile$(myDir)
	; If there isn't another one, let's exit this loop
	If file$="" Then Exit
	; Use FileType to determine if it is a folder (value 2) or a file and print results
	filename$= path$+file$ 
	If FileType(filename) =1 
		If Instr(Upper$(file),filter,1)<>0 
			f.file = New file
			f\name = path$+file$ 
			counter = counter + 1 
		End If
	Else
		If recursive=True
			If file$<>"." And file$<>".." Then
				If FileType(filename+"\")
					dlog(">folder:" + filename+"\")
					scandir( filename$+"\", filter$)
				End If
			End If
		End If
	End If
	Forever
	; Properly close the open folder
	CloseDir myDir
	Return counter
End Function
;***********************************************************
;*** Write txt file of dumped results (opened via notepad)
;***********************************************************
Function writeTextFile(filename$, txt$)
	f = WriteFile(filename)
	start=1
	Repeat
	flagExit = Instr(txt,Chr$(13),start)
	If flagexit Then 
		WriteLine f, Mid$(txt$,start,flagExit-start)
	    start = flagExit + 1
	End If
	Until flagExit = 0
	CloseFile f
End Function

;***********************************************************
;*** The main loop routine
;***********************************************************
Function deletaAllBackFile(path$)
	txt$=""
	quotes$=Chr$(34)
	Repeat
		path$ = Replace(path,quotes,"")
	Until Instr(path,quotes)=0
	txt$ = txt$ + dLog("Scanning directory..." )
	txt$ = txt$ + dLog(path$, 255,0,0)
	Color 0,0,0
	Print
	Print "Press any key to continue"
	WaitInteraction
	Restore FILTERS
	Read howmany
	For t=1 To howmany
		scanDir(path$,".bak")
	Next
	filename$ = SystemProperty ("tempdir") + "tmp.txt"
;*** Dump founded files
	i=0
	For f.file = Each file
		txt = txt + dLog("Find "+i+": "+ f\name)
		i=i+1
	Next
	txt = txt + dLog("Founded "+i+" files to be deleted...",255,0,0)
	Color 0,0,0
;*** Write and open with notepad the result file 
	writeTextFile(filename$,txt)
	ExecFile("notepad " + filename$) 
	Print
	Print "Press any key to delete them or...quit!"
	WaitInteraction
;*** Delete the files
	i=0
	For f.file = Each file
		If FileType(f\name$)
			DeleteFile (f\name$)
			i=i+1
		End If
	Next
	Print "Removed "+i+" files..cya!"
	WaitInteraction
;*** Release resources
	Delete Each file
	DeleteFile filename$
End Function
;***********************************************************
;*** Debug log + print log
;***********************************************************
Function dlog$(txt$, r=0,g=0,b=0)
	DebugLog(txt)
	Color r,g,b
	Print txt
	Return txt + Chr$(13)
End Function
;***********************************************************
;*** Alternative to wait mouse and key. Esc quits
;***********************************************************
Function WaitInteraction()
	FlushMouse()
	FlushKeys()
	Repeat 
		If MouseDown(1) Then Repeat:Until MouseDown(1)=0 : Return
		If MouseDown(2) Then end
		If MouseDown(3) Then Repeat:Until MouseDown(3)=0 : Return
		v= GetKey()
		If v=27 Then End
		If v Then Return
	Until False
End Function
;***********************************************************
;*** Main Program
;***********************************************************
AppTitle "Remove Bak files V1.02 - By Gianluca Sclano (BitmaniaK)";"Okee Dokee!"
Graphics 800,600,16,2
ClsColor 255,255,255
Cls
Color 0,0,160
Print "REMOVE ANNOYING BACK FILE"
Print "By Gianluca SCLANO (BitmaniaK)"
Print "sclano@hotmail.com"
Print

If CommandLine$() <>"" Then
	deletaAllBackFile(CommandLine$())
Else
	deletaAllBackFile(CurrentDir$())
End If
End

Comments

None.

Code Archives Forum