home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l217 / 2.ddi / EXAMPLES / CH12EX15.PRO < prev    next >
Encoding:
Text File  |  1990-03-26  |  1023 b   |  39 lines

  1. /*
  2.    Copyright (c) 1986, 90 by Prolog Development Center
  3. */
  4. constants
  5. fa_hidden = $02    /* Hidden file          */
  6. fa_system = $04    /* System file          */
  7. fa_subdir = $10    /* Subdirectory         */
  8.  
  9. fa_hidsys = $06    /* hidden + system */
  10.  
  11. predicates
  12. findhidden(string,string)
  13. wrattr(integer)
  14.  
  15. clauses
  16. wrattr(A):- bitand(A,fa_hidden,AA), AA<>0, write('H'), fail.
  17. wrattr(A):- bitand(A,fa_system,AA), AA<>0, write('S'), fail.
  18. wrattr(A):- bitand(A,fa_subdir,AA), AA<>0, write('D'), fail.
  19. wrattr(_).
  20.  
  21. findhidden(CurrPath,Wild):-
  22.     write(CurrPath,":\n"),
  23.     filenamepath(FileSpec,CurrPath,Wild),
  24.     dirfiles(FileSpec,fa_hidsys,FileName,RetAttr,_,_,_,_,_,_,_),
  25.     wrattr(RetAttr),
  26.     write('\t',FileName,'\n'),
  27.     fail.
  28. findhidden(CurrPath,Wild):-
  29.     filenamepath(DirSpec,CurrPath,"*.*"),
  30.     dirfiles(DirSpec,fa_subdir,Name,_,_,_,_,_,_,_,_),
  31.     not(frontchar(Name,'.',_)),
  32.     filenamepath(DirName,CurrPath,Name),
  33.     findhidden(DirName,Wild),
  34.     fail.
  35. findhidden(_,_).
  36.  
  37. goal
  38.     findhidden("C:\\","*.*").
  39.