home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / cb / setup / cbuilder / data.z / FMXUTILS.CPP < prev    next >
C/C++ Source or Header  |  1997-02-28  |  4KB  |  116 lines

  1. //----------------------------------------------------------------------------
  2. //Borland C++Builder
  3. //Copyright (c) 1987, 1997 Borland International Inc. All Rights Reserved.
  4. //----------------------------------------------------------------------------
  5. //---------------------------------------------------------------------------
  6. #include <vcl\vcl.h>
  7. #pragma hdrstop
  8.  
  9. #include <shellapi.h>
  10. #include "FmxUtils.h"
  11. //---------------------------------------------------------------------------
  12. TDateTime __fastcall FileDateTime(const AnsiString FileName)
  13. {
  14.   return (FileDateToDateTime(FileAge(FileName)));
  15. }
  16.  
  17. // GetFileSize function
  18. //
  19. //  Returns the size of the named file without opening the file.  If the file
  20. //  doesn't exist, returns -1.
  21. //
  22. long __fastcall GetFileSize(const AnsiString FileName)
  23. {
  24.   TSearchRec SearchRec;
  25.     if(FindFirst(ExpandFileName(FileName), faAnyFile, SearchRec)==0)
  26.       return SearchRec.Size;
  27.     else
  28.       return -1;
  29. }
  30.  
  31. // MoveFile procedure
  32. //
  33. //  Moves the file passed in FileName to the directory specified in DestDir.
  34. //  Tries to just rename the file.  If that fails, try to copy the file and
  35. //  delete the original.
  36. //
  37. //  Throws an exception if the source file is read-only, and therefore cannot
  38. //  be deleted/moved.
  39. //
  40. void __fastcall MoveFile(const AnsiString FileName,const AnsiString DestName)
  41. {
  42.   AnsiString Destination;
  43.   char FName[255];
  44.   bool ckmove;
  45.  
  46.   Destination=ExpandFileName(DestName);
  47.   GetFileTitle(FileName.c_str(),FName,255);
  48.  
  49.   if(HasAttr(FileName, faReadOnly)) {
  50.       char buffer[255];
  51.       sprintf(buffer,
  52.               "Error: Can not move the file '%s'.",
  53.               FileName.c_str());
  54.  
  55.       throw EFCantMove(buffer);
  56.   }
  57.  
  58.   if (HasAttr(Destination,faDirectory))
  59.       Destination=Destination+AnsiString(FName);
  60.  
  61.   ckmove= MoveFile(FileName.c_str(), Destination.c_str());
  62.  
  63.   if(!ckmove)
  64.     ShowMessage("Please give the destination filename");
  65. }
  66.  
  67. void __fastcall CopyFile(AnsiString FileName,AnsiString DestName)
  68. {
  69.   bool   ckcopy;
  70.   AnsiString Destination;
  71.   char   FName[255];
  72.  
  73.   GetFileTitle(FileName.c_str(),FName,255);
  74.   Destination = ExpandFileName(DestName);
  75.  
  76.   if(HasAttr(Destination,faDirectory))
  77.     Destination=Destination+FName;
  78.  
  79.   ckcopy= CopyFile(FileName.c_str(),Destination.c_str(),false);
  80.  
  81.   if(!ckcopy)
  82.     ShowMessage("Please give the destination filename");
  83.  
  84. }
  85. //---------------------------------------------------------------------------
  86. bool __fastcall HasAttr(const AnsiString FileName,const unsigned short Attr)
  87. {
  88.   int attribtest;
  89.  
  90.   attribtest=FileGetAttr(FileName);
  91.  
  92.   if(attribtest & Attr)
  93.     return true;
  94.   else
  95.     return false;
  96. }
  97.  
  98. //---------------------------------------------------------------------------
  99. int __fastcall ExecuteFile(const AnsiString FileName,
  100.                            const AnsiString Params,
  101.                            const AnsiString DefaultDir,
  102.                            int ShowCmd)
  103. {
  104.  
  105.   char zFileName[79], zParams[79], zDir[79];
  106.   return (int) ShellExecute(Application->MainForm->Handle,
  107.                             NULL,
  108.                             strcpy(zFileName,
  109.                                    FileName.c_str()),
  110.                             strcpy(zParams,
  111.                                    Params.c_str()),
  112.                             strcpy(zDir,
  113.                                    DefaultDir.c_str()),
  114.                             ShowCmd);
  115. }
  116.