home *** CD-ROM | disk | FTP | other *** search
/ ftp.ncftp.com / ftp.ncftp.com.zip / ftp.ncftp.com / ncftp / older_versions / ncftp-3.2.2-src.tar.bz2 / ncftp-3.2.2-src.tar / ncftp-3.2.2 / libncftp / c_rmdir.c < prev    next >
C/C++ Source or Header  |  2005-01-01  |  1KB  |  61 lines

  1. /* c_rmdir.c
  2.  *
  3.  * Copyright (c) 1996-2005 Mike Gleason, NcFTP Software.
  4.  * All rights reserved.
  5.  *
  6.  */
  7.  
  8. #include "syshdrs.h"
  9. #ifdef PRAGMA_HDRSTOP
  10. #    pragma hdrstop
  11. #endif
  12.  
  13. int
  14. FTPRmdir(const FTPCIPtr cip, const char *const pattern, const int recurse, const int doGlob)
  15. {
  16.     FTPLineList fileList;
  17.     FTPLinePtr filePtr;
  18.     char *file;
  19.     int onceResult, batchResult;
  20.  
  21.     if (cip == NULL)
  22.         return (kErrBadParameter);
  23.     if (strcmp(cip->magic, kLibraryMagic))
  24.         return (kErrBadMagic);
  25.  
  26.     batchResult = FTPRemoteGlob(cip, &fileList, pattern, doGlob);
  27.     if (batchResult != kNoErr)
  28.         return (batchResult);
  29.  
  30.     for (batchResult = kNoErr, filePtr = fileList.first;
  31.         filePtr != NULL;
  32.         filePtr = filePtr->next)
  33.     {
  34.         file = filePtr->line;
  35.         if (file == NULL) {
  36.             batchResult = kErrBadLineList;
  37.             cip->errNo = kErrBadLineList;
  38.             break;
  39.         }
  40.         onceResult = FTPCmd(cip, "RMD %s", file);     
  41.         if (onceResult < 0) {
  42.             batchResult = onceResult;
  43.             break;
  44.         }
  45.         if (onceResult != 2) {
  46.             if (recurse == kRecursiveYes) {
  47.                 onceResult = FTPRmdirRecursive(cip, file);
  48.                 if (onceResult < 0) {
  49.                     batchResult = kErrRMDFailed;
  50.                     cip->errNo = kErrRMDFailed;
  51.                 }
  52.             } else {
  53.                 batchResult = kErrRMDFailed;
  54.                 cip->errNo = kErrRMDFailed;
  55.             }
  56.         }
  57.     }
  58.     DisposeLineListContents(&fileList);
  59.     return (batchResult);
  60. }    /* FTPRmdir */
  61.