home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 28 / amigaformatcd28.iso / -seriously_amiga- / archivers / arcppc / srcpup.lha / srcpup / rename.c < prev    next >
C/C++ Source or Header  |  1998-04-08  |  614b  |  44 lines

  1. /* by Andreas R. Kleinert in 1998 */
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6.  
  7. #include <dos/dosextens.h>
  8. #include <proto/dos.h>
  9.  
  10.  
  11. int rename(const char *old, const char *new) /* including move(), thus across devices */
  12. {
  13.  int res;
  14.  
  15.  res = Rename(old, new);
  16.  if(!res)
  17.   {
  18.    FILE *src, *dst;
  19.    int c;
  20.  
  21.    res = FALSE;
  22.  
  23.    src = fopen(old, "rb");
  24.    if(src)
  25.     {
  26.      dst = fopen(new, "wb");
  27.      if(dst)
  28.       {
  29.        while( (c = fgetc(src)) != EOF) fputc(c, dst);
  30.  
  31.        res = TRUE;
  32.  
  33.        fclose(dst);
  34.       }
  35.  
  36.      fclose(src);
  37.  
  38.      if(res) DeleteFile(old);
  39.     }
  40.   }
  41.  
  42.  return(!res);
  43. }
  44.