Code archives/File Utilities/Blitz Prune
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| Prunes a Blitz source directory tree. Options to recursively remove .bak files, .bmx directories and (.debug).exe files from source directories. For saving space or distributing source only. Uses Auto Form (and thus MaxGUI) for GUI. | |||||
SuperStrict
' Prunes a Blitz source directory tree.
' Options to remove .bak files, .bmx
' directories and (.debug).exe files.
Framework MaxGUI.Drivers
Import BRL.FileSystem
Import "autoform.bmx"
' Main
Local f:TForm = New TForm
If AutoForm( "Options", f ) Prune f.Base_directory, f
' End Main
Type TForm
Field Base_directory:String = CurrentDir() { directory }
Field Recursive:Int = True { bool }
Field Remove_BAK_files:Int = True { bool }
Field Remove_BMX_directories:Int = True { bool }
Field Remove_debug_executables:Int = False { bool }
Field Remove_other_executables:Int = False { bool }
End Type
Function Prune(dirname:String, f:TForm)
dirname = StripSlash(dirname)
Local dir:Int = ReadDir(dirname)
dirname :+ "/"
Local file:String = NextFile(dir)
While file
Select FileType(dirname+file)
Case FILETYPE_DIR
If file="." Or file=".."
'Skip
Else If file=".bmx"
If f.Remove_BMX_directories
Print dirname+file
DeleteDir dirname+file, True
End If
Else
If f.Recursive
Prune dirname+file, f
End If
End If
Case FILETYPE_FILE
Local ext:String = ExtractExt(file).ToLower()
If ext="bak"
If f.Remove_BAK_files
Print dirname+file
DeleteFile dirname+file
End If
ElseIf ext="exe"
If file.ToLower().EndsWith(".debug.exe")
If f.Remove_debug_executables
Print dirname+file
DeleteFile dirname+file
End If
Else
If f.Remove_other_executables
Print dirname+file
DeleteFile dirname+file
End If
End If
End If
End Select
file = NextFile(dir)
Wend
End Function |
Comments
None.
Code Archives Forum