home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / files / fileman / filestuf / filestuf.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1988-09-09  |  2.6 KB  |  143 lines

  1. { FILESTUF.PAS }
  2.  
  3. UNIT FileStuf;
  4.  
  5. {
  6. Description:  Advanced functions to test for the existence of a specified
  7.               file or directory. Detects the presence of the file or dir-
  8.               ectory, even if it is marked as read-only or it is a hidden
  9.               or system entity.
  10.  
  11. Author:       Don Taylor
  12. Date:         12/17/87
  13. Last revised: 04/18/88  8:40 (Corrected errors per "TUG's Bugs" Issue 24)
  14. Application:  IBM PC or compatible with Turbo Pascal 4.0
  15. }
  16.  
  17. {<<<<<---------->>>>>}
  18.  
  19. INTERFACE
  20.  
  21.  USES Dos, TypeStuf;
  22.  
  23.  FUNCTION FileExists(FName : Str80) : BOOLEAN;
  24.  FUNCTION DirExists(DName : Str80)  : BOOLEAN;
  25.  
  26. {<<<<<---------->>>>>}
  27.  
  28. IMPLEMENTATION
  29.  
  30. FUNCTION FileExists(FName : Str80) : BOOLEAN;
  31.  
  32. VAR
  33.  f     : FILE;
  34.  fAttr : WORD;
  35.  
  36. BEGIN
  37.  ASSIGN(f, FName);
  38.  GetFAttr(f, fAttr);
  39.  FileExists := (DosError = 0)
  40.             AND ((fAttr AND Directory) = 0)
  41.             AND ((fAttr AND VolumeID)  = 0)
  42. END;  { FileExists }
  43.  
  44. {--------------------}
  45.  
  46. FUNCTION DirExists(DName : Str80) : BOOLEAN;
  47.  
  48. VAR
  49.  f     : FILE;
  50.  fAttr : WORD;
  51.  
  52. BEGIN
  53.  ASSIGN(f, DName);
  54.  GetFAttr(f, fAttr);
  55.  DirExists := ((fAttr AND Directory) <> 0) AND (DosError = 0)
  56. END;  { DirExists }
  57.  
  58. {--------------------}
  59.  
  60. FUNCTION IsReadOnly(FName : Str80) : BOOLEAN;
  61.  
  62. VAR
  63.  f     : FILE;
  64.  fAttr : WORD;
  65.  
  66. BEGIN
  67.  ASSIGN(f, FName);
  68.  GetFAttr(f, fAttr);
  69.  IsReadOnly := (fAttr AND ReadOnly) <> 0
  70. END;  { IsReadOnly }
  71.  
  72. {--------------------}
  73.  
  74. FUNCTION IsHidden(FName : Str80) : BOOLEAN;
  75.  
  76. VAR
  77.  f     : FILE;
  78.  fAttr : WORD;
  79.  
  80. BEGIN
  81.  ASSIGN(f, FName);
  82.  GetFAttr(f, fAttr);
  83.  IsHidden := (fAttr AND Hidden) <> 0
  84. END;  { IsHidden }
  85.  
  86. {--------------------}
  87.  
  88. FUNCTION IsSysFile(FName : Str80) : BOOLEAN;
  89.  
  90. VAR
  91.  f     : FILE;
  92.  fAttr : WORD;
  93.  
  94. BEGIN
  95.  ASSIGN(f, FName);
  96.  GetFAttr(f, fAttr);
  97.  IsSysFile := (fAttr AND SysFile) <> 0
  98. END;  { IsSysFile }
  99.  
  100. {--------------------}
  101.  
  102. FUNCTION IsVolumeID(FName : Str80) : BOOLEAN;
  103.  
  104. VAR
  105.  f     : FILE;
  106.  fAttr : WORD;
  107.  
  108. BEGIN
  109.  ASSIGN(f, FName);
  110.  GetFAttr(f, fAttr);
  111.  IsVolumeID := (fAttr AND VolumeID) <> 0
  112. END;  { IsVolumeID }
  113.  
  114. {--------------------}
  115.  
  116. FUNCTION IsDirectory(FName : Str80) : BOOLEAN;
  117.  
  118. VAR
  119.  f     : FILE;
  120.  fAttr : WORD;
  121.  
  122. BEGIN
  123.  ASSIGN(f, FName);
  124.  GetFAttr(f, fAttr);
  125.  IsDirectory := (fAttr AND Directory) <> 0
  126. END;  { IsDirectory }
  127.  
  128. {--------------------}
  129.  
  130. FUNCTION IsArchived(FName : Str80) : BOOLEAN;
  131.  
  132. VAR
  133.  f     : FILE;
  134.  fAttr : WORD;
  135.  
  136. BEGIN
  137.  ASSIGN(f, FName);
  138.  GetFAttr(f, fAttr);
  139.  IsArchived := (fAttr AND Archive) = 0
  140. END;  { IsArchived }
  141.  
  142. END. { UNIT FileStuf }
  143.