Guest User

Untitled

a guest
Aug 8th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. How to Download XML file from FTP in iPhone
  2. -(void) downLoad
  3. {
  4.  
  5. CFStringRef UpGrdURL=CFSTR("ftp://webaddress/abc.xml");
  6. CFURLRef requestURL=CFURLCreateWithString(kCFAllocatorDefault,UpGrdURL,NULL);
  7. CFURLRef requestLocalFile=CFURLCreateWithFileSystemPath(NULL, CFSTR("abc.xml"),
  8. kCFURLPOSIXPathStyle, false);
  9. CFReadStreamRef readStream=CFReadStreamCreateWithFTPURL(kCFAllocatorDefault,requestURL);
  10. CFWriteStreamRef writeStream=CFWriteStreamCreateWithFile(kCFAllocatorDefault,requestLocalFile);
  11. CFWriteStreamOpen (writeStream);
  12. if (CFWriteStreamGetStatus(writeStream)==kCFStreamStatusOpen) {
  13. UIAlertView * alertView = [[UIAlertView alloc] initWithTitle: @"Information box."
  14. message: [NSString stringWithFormat:@"(CFWriteStreamOpen : kCFStreamStatusOpen."]
  15. delegate: nil cancelButtonTitle: @"OK" otherButtonTitles: nil];
  16. [alertView show];
  17. [alertView release];
  18. }
  19.  
  20. MyStreamInfo XX;
  21. XX.readStream=readStream;
  22. XX.writeStream=writeStream;
  23. CFStreamClientContext CTX = { 0, &XX, NULL, NULL, NULL };
  24.  
  25. CFStringRef UserName=CFSTR("******");
  26. CFStringRef PassWord=CFSTR("******");
  27. CFReadStreamSetProperty (readStream,kCFStreamPropertyFTPUserName,UserName);
  28. CFReadStreamSetProperty (readStream,kCFStreamPropertyFTPPassword,PassWord);
  29. CFReadStreamSetProperty (readStream,kCFStreamPropertyFTPUsePassiveMode,NO);
  30. // CFReadStreamOpen (readStream);
  31. //CFReadStreamSetClient(readStream,kCFStreamEventHasBytesAvailable|kCFStreamEventErrorOccurred, readCallBack,&CTX);
  32.  
  33. CFReadStreamSetClient(readStream, kCFStreamEventHasBytesAvailable, [self readCallBack:readStream eventType:kCFStreamEventHasBytesAvailable clientCallBackInfo:&CTX], &CTX);
  34.  
  35. }
  36.  
  37. -(void) readCallBack:(CFReadStreamRef)stream eventType:(CFStreamEventType)eventType clientCallBackInfo:(void *)clientCallBackInfo
  38. {
  39. char* buffer[1024];
  40. CFIndex bytes_recvd; //bytes read
  41.  
  42. int recv_len = 0;
  43. int total_size;
  44. //CFIndex bytesWritten;
  45. //int totalBytesWritten;
  46. //CFWriteStreamRef writeStream;
  47. UInt8 buf[4096];
  48.  
  49. bytes_recvd = CFReadStreamRead(stream, buf + recv_len, 4096);
  50.  
  51.  
  52. while(recv_len < total_size && recv_len < sizeof(buffer)) {
  53.  
  54. bytes_recvd = CFReadStreamRead(stream, buf + recv_len, 4096);
  55. NSLog(@"total bytes are %d", bytes_recvd);
  56.  
  57. }
  58. recv_len = bytes_recvd + recv_len;
  59. }
Add Comment
Please, Sign In to add comment