Hints:
This little coder addon encrypt all founded not encrypted files in a folder
and decrypt all founded encrypted files in a folder, full automatic
The addon is also included in the QAES crypted pinboard
Code: Select all
; === Module QAES_simple_folder_coder ===
DeclareModule QAES_simple_folder_coder
UseModule QAES_smart_file_coder
Declare QAES_simple_folder_coder(mode, window_ID, progressbar_ID, directory$, key$, include_hidden=#True, file_extender$="")
EndDeclareModule
Module QAES_simple_folder_coder
EnableExplicit
Procedure QAES_simple_folder_coder(mode, window_ID, progressbar_ID, directory$, key$, include_hidden=#True, file_extender$="")
; Set mode=1 for broken file hash messages
Protected directory, entry_atrributes, entry_type, mode_1
Protected pathslash$, entry_name$, result$
CompilerIf #PB_Compiler_OS = #PB_OS_Windows : directory$+"\" : CompilerElse : directory$+"/" : CompilerEndIf
directory=ExamineDirectory(#PB_Any, directory$, "*.*")
If directory
While NextDirectoryEntry(directory)
entry_name$=DirectoryEntryName(directory)
entry_atrributes=DirectoryEntryAttributes(directory)
entry_type=DirectoryEntryType(directory)
If entry_name$="." Or entry_name$=".." : Continue : EndIf
If Not include_hidden
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
If entry_atrributes & #PB_FileSystem_Hidden : Continue : EndIf
CompilerElse
If Left(entry_name$, 1) = "." : Continue : EndIf
CompilerEndIf
EndIf
Select entry_type
Case #PB_DirectoryEntry_Directory
QAES_simple_folder_coder(1, window_ID, progressbar_ID, directory$+entry_name$, key$, include_hidden, file_extender$)
Case #PB_DirectoryEntry_File
result$=QAES_smart_file_coder(4, window_ID, progressbar_ID, directory$+entry_name$, key$, file_extender$)
If Left(result$, 5)="ALLok" : mode_1=2 : Else : mode_1=1 : EndIf
result$=QAES_smart_file_coder(mode_1, window_ID, progressbar_ID, directory$+entry_name$, key$, file_extender$)
If mode_1=2 And Left(result$, 7)="WARNING"
result$=Left(entry_name$, Len(entry_name$)-Len(file_extender$))
If mode
MessageRequester("WARNING", "Broken file hash found"+#CRLF$+#CRLF$+directory$+result$)
RenameFile(directory$+result$, directory$+result$+" [File hash broken]")
EndIf
EndIf
EndSelect
Wend
FinishDirectory(directory)
ProcedureReturn 1
EndIf
EndProcedure
EndModule
UseModule QAES_simple_folder_coder