home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / m2 / CycloneModules.lha / modules / txt / FileSup.mod < prev    next >
Text File  |  1995-05-11  |  1KB  |  68 lines

  1. IMPLEMENTATION MODULE FileSup;
  2.  
  3. (* (C) Copyright 1995 Marcel Timmermans. All rights reserved. *)
  4.  
  5. FROM SYSTEM IMPORT ADR,ADDRESS;
  6. IMPORT DosL,DosD,ExecL,ExecD;
  7.  
  8. PROCEDURE GetFileDate(Name:ARRAY OF CHAR; VAR date:DosD.Date):BOOLEAN;
  9. (*$ CopyDyn- *)
  10. CONST 
  11.   fbs=SIZE(DosD.FileInfoBlock);
  12. VAR 
  13.   FLock:DosD.FileLockPtr;
  14.   Fib  :DosD.FileInfoBlockPtr;
  15.   Len  :LONGINT;
  16.   ok:BOOLEAN;
  17. BEGIN
  18.  ok:=FALSE;
  19.  Fib:=ExecL.AllocMem(fbs,ExecD.MemReqSet{ExecD.public});
  20.  IF Fib#NIL THEN
  21.   FLock:=DosL.Lock(ADR(Name), NIL);
  22.   IF FLock#NIL THEN
  23.    IF DosL.Examine(FLock,Fib)=TRUE THEN
  24.     date:=Fib^.date;  
  25.     ok:=TRUE;
  26.    END;
  27.    DosL.UnLock(FLock);
  28.   END;
  29.   ExecL.FreeMem(Fib,fbs);
  30.  END;
  31.  RETURN ok;
  32. END GetFileDate;
  33.  
  34. PROCEDURE FileExists(Name:ADDRESS):BOOLEAN;
  35. VAR 
  36.   FLock:DosD.FileLockPtr;
  37. BEGIN
  38.   FLock:=DosL.Lock( Name, NIL);
  39.   IF FLock#NIL THEN DosL.UnLock(FLock); END;
  40.   RETURN FLock=NIL;
  41. END FileExists;
  42.  
  43.  
  44. PROCEDURE GetFileLen(Name:ARRAY OF CHAR):LONGINT;
  45. CONST 
  46.   fbs=SIZE(DosD.FileInfoBlock);
  47. VAR FLock:DosD.FileLockPtr;
  48.     Fib  :DosD.FileInfoBlockPtr;
  49.     Len  :LONGINT;
  50. BEGIN
  51.  Len:=-1;
  52.  Fib:=ExecL.AllocMem(fbs,ExecD.MemReqSet{ExecD.public});
  53.  IF Fib#NIL THEN
  54.   FLock:=DosL.Lock(ADR(Name),NIL);
  55.   IF FLock#NIL THEN
  56.    IF DosL.Examine(FLock,Fib)=TRUE THEN
  57.     Len:=Fib^.size;
  58.    END;
  59.    DosL.UnLock(FLock);
  60.   END;
  61.   ExecL.FreeMem(Fib,fbs);
  62.  END;
  63.  RETURN Len;
  64. END GetFileLen;
  65.  
  66.  
  67. END FileSup.mod
  68.