Subject: Hiding a directory 53. ***** Q: How can one hide (or unhide) a directory using a TP program? A: Here is the code using interrupt programming. Incidentally, since MS-DOS 5.0 the attrib command can be used to hide and unhide directories. (* Hide a directory. Before using it would be prudent to check that the directory exists, and that it is a directory. With a contribution from Jan Nielsen jak@hdc.hha.dk Based on information from Duncan (1986), p. 410 *) procedure HIDE (dirname : string); var regs : registers; begin FillChar (regs, SizeOf(regs), 0); { standard precaution } dirname := dirname + #0; { requires ASCIIZ strings } regs.ah := $43; { function } regs.al := $01; { subfunction } regs.ds := Seg(dirname[1]); { point to the name } regs.dx := Ofs(dirname[1]); regs.cx := 2; { set bit 1 on } { to unhide set regs.cx := 0 } Intr ($21, regs); { call the interrupt } if regs.Flags and FCarry <> 0 then { were we successful } writeln ('Failed to hide'); end; (* hide *) A2: An alternative method by Dr. Abimbola Olowofoyeku laa12@seq1.keele.ac.uk. No paths. procedure HIDE (dirname : string); var FileInfo : searchRec; f : file; begin FindFirst (dirname, Directory, FileInfo); while DosError = 0 do begin assign (f, FileInfo.Name); SetFAttr (f, Hidden); FindNext (FileInfo); end; end; (* hide *) {} procedure UNHIDE (dirname : string); var FileInfo : searchRec; f : file; begin FindFirst (dirname, AnyFile, FileInfo); while DosError = 0 do begin assign (f, FileInfo.Name); SetFAttr (f, Archive); FindNext (FileInfo); end; end; (* unhide *) --------------------------------------------------------------------