Mega Code Archive

 
Categories / Delphi / Ide Indy
 

How to Clean up the Delphi Project Directories

Title: How to Clean up the Delphi Project Directories uses SysUtils, Registry, WinTypes, FileCtrl; var dir: string; const // HKEY_CLASSES_ROOT DirExtensionKey = 'Directory\shell\clean'; SubKey = '\command'; procedure PerformAction(const dir, fname: string); // Set selected attributes for a file. begin if not SysUtils.DeleteFile(dir + fname) then begin end; end; procedure ScanDirectory(const dir, filemask: string); // Call performaction for every file which looks like filemask var SearchRec: TSearchRec; begin if not DirectoryExists(dir) then begin MessageBox(0, 'Directory not found', 'Clean', mb_ok); Halt; end; if dir '' then ChDir(dir); // Search subdirs ? if True then begin if FindFirst('*.*', faDirectory, SearchRec) = 0 then repeat if (SearchRec.Name '.') and (SearchRec.Name '..') and ((SearchRec.Attr and faDirectory) = faDirectory) then ScanDirectory(SearchRec.Name, filemask); until (FindNext(SearchRec) 0); SysUtils.FindClose(SearchRec); end; // Ennumerate all files in current directory if FindFirst(filemask, faAnyFile, SearchRec) = 0 then repeat if (SearchRec.Name '.') and (SearchRec.Name '..') and ((SearchRec.Attr and faDirectory) = 0) then PerformAction('', SearchRec.Name); until (FindNext(SearchRec) 0); SysUtils.FindClose(SearchRec); // Directory up Chdir('..'); end; procedure DoPopupReg; var reg: TRegistry; begin try reg := TRegistry.Create; except Exit; end; if True then with reg do begin RootKey := HKEY_CLASSES_ROOT; OpenKey(DirExtensionkey, True); WriteString('', 'Clean Del&phi files'); CloseKey; OpenKey(DirExtensionkey + SubKey, True); WriteString('', ParamStr(0) + ' "%1"'); CloseKey; end else with reg do begin RootKey := HKEY_CLASSES_ROOT; DeleteKey(DirExtensionkey); CloseKey; end; reg.Free; end; begin DoPopupReg; if ParamCount 0 then dir := ParamStr(1) else Exit; ScanDirectory(dir, '*.dcu'); ScanDirectory(dir, '*.~*'); // You can add more files here end.