home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / SWITCH2.ZIP / MYTREE.C < prev    next >
C/C++ Source or Header  |  1990-01-22  |  1KB  |  71 lines

  1. /* mytree.c */
  2. /* Copyright Darien Mann 1989 
  3. GENIE D.MANN4 */
  4.  
  5. #include "os2.h"
  6. #include "stdio.h"
  7. #include "string.h"
  8. #include "dos.h"
  9.  
  10. FILEFINDBUF sbuf;
  11.  
  12. int drvno;
  13. int count = 0;
  14. char sname[256];
  15. main(argc,argv)
  16. int argc;
  17. char **argv;
  18. {
  19. unsigned long drvmap;
  20.  
  21.     DosQCurDisk(&drvno, &drvmap);
  22.     schdir("\\");
  23. }
  24. schdir(char *dirname)
  25. {
  26.     unsigned shan = -1;
  27.     int scnt = 1;
  28.     DosChdir(dirname, 0L);
  29.     if(!DosFindFirst("*",&shan,_A_NORMAL | _A_SUBDIR,
  30.         &sbuf,sizeof(sbuf),&scnt,0L))
  31.     {
  32.         do
  33.         {
  34.             if((sbuf.attrFile & _A_SUBDIR) && (sbuf.achName[0] != '.'))
  35.             {
  36.                 schdir(sbuf.achName);
  37.                 pdir();
  38.                 DosChdir("..",0L);
  39.             }
  40.         }while(DosFindNext(shan,&sbuf,sizeof(sbuf),&scnt) == 0);
  41.     }
  42.     DosFindClose(shan);
  43. }
  44. schfile()
  45. {
  46.     unsigned shan = -1;
  47.     int scnt = 1;
  48.     if(!DosFindFirst(sname,&shan,_A_NORMAL,&sbuf,sizeof(sbuf),&scnt,0L))
  49.     {
  50.         do pfile();
  51.         while(DosFindNext(shan,&sbuf,sizeof(sbuf),&scnt)==0);
  52.     }
  53.     DosFindClose(shan);
  54. }
  55. pfile()
  56. {
  57.     count++;
  58.     pdir();
  59.     printf("%s\n",strlwr(sbuf.achName));
  60. }
  61. pdir()
  62. {
  63.     char dbuf[256];
  64.     int dlen=sizeof(dbuf);
  65.     DosQCurDir(0,dbuf,&dlen);
  66.     printf("%c:\\%s\n",drvno+'A'-1,dbuf); 
  67. }
  68.  
  69.     
  70.  
  71.