home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / snip9707.zip / GETVOL.C < prev    next >
C/C++ Source or Header  |  1997-07-05  |  1KB  |  54 lines

  1. /* +++Date last modified: 05-Jul-1997 */
  2.  
  3. /*
  4. **  GETVOL.C - Retrieve a disk volume label
  5. **             (proof you don't need FCBs to do it!)
  6. **
  7. **  public domain demo by Bob Stout
  8. */
  9.  
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12. #include <string.h>
  13. #include <dos.h>
  14. #include <io.h>
  15.  
  16. #include "dirport.h"
  17. #include "sniptype.h"
  18.  
  19. char *getvol(char drive)
  20. {
  21.       char search[] = "A:\\*.*";
  22.       static DOSFileData ff;
  23.  
  24.       *search = drive;
  25.       if (Success_ == FIND_FIRST(search, _A_VOLID, &ff))
  26.       {
  27.             if (8 < strlen(ff_name(&ff)))       /* Eliminate period     */
  28.                   strcpy(&(ff_name(&ff))[8], &(ff_name(&ff))[9]);
  29.             return ff_name(&ff);
  30.       }
  31.       else  return NULL;
  32. }
  33.  
  34. #ifdef TEST
  35.  
  36. int main(int argc, char *argv[])
  37. {
  38.       char *label;
  39.  
  40.       if (2 > argc)
  41.       {
  42.             puts("\aUsage: GETVOL d[:]");
  43.             puts("where: d = drive letter (e.g. A, B, C, etc.");
  44.             return -1;
  45.       }
  46.       if (NULL == (label = getvol(*argv[1])))
  47.             printf("Unable to read a label on drive %c:\n", *argv[1]);
  48.       else  printf("The volume label of drive %c: is \"%s\"\n",
  49.             *argv[1], label);
  50.       return 0;
  51. }
  52.  
  53. #endif /* TEST */
  54.