FtpFunction.h
上传用户:tjfeida
上传日期:2013-03-10
资源大小:1917k
文件大小:4k
源码类别:

Ftp客户端

开发平台:

Visual C++

  1. // FtpTransmitFile.h: interface for the CFtpTransmitFile class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_FTPTRANSMITFILE_H__9FBE8C59_B355_4146_8A7D_5C771C57570C__INCLUDED_)
  5. #define AFX_FTPTRANSMITFILE_H__9FBE8C59_B355_4146_8A7D_5C771C57570C__INCLUDED_
  6. /*********************************************
  7. **该文件是属于WolfFTP工程中的。如果有什么问题
  8. **请联系
  9. **         tablejiang@21cn.com
  10. **或者访问
  11. **         http://wolfftp.51.net
  12. **以得到最新的支持。
  13. *********************************************/
  14. #if _MSC_VER > 1000
  15. #pragma once
  16. #endif // _MSC_VER > 1000
  17. #include "FtpLib.h"
  18. #include "SelectActionDlg.h"
  19. /***********************************************************
  20. ** @Description:
  21. ** this class encapsulation the CFtpLib class function  
  22. ** and ftp communication core function .
  23. ** it offer higher function than CFtpLib .
  24. **
  25. ** @Note:
  26. **
  27. **
  28. **
  29. ** @Author :Table.JHM.太子
  30. ** e-mail:  tablejiang@21cn.com
  31. ** Date:  2001 3 26
  32. ***********************************************************/
  33. class CFtpFunction  : public CFtpLib
  34. {
  35. public:
  36. CFtpFunction();
  37. virtual ~CFtpFunction();
  38. //public member variable
  39. public:
  40. char m_CurrentFtpDirectory[MAX_PATH] ; //store ftp current path.
  41. SITEINFO m_SiteInfo ; //store ftp current site info.
  42. FTPITEM* m_ListItem ; //store ftp file list.
  43. CFileQueue m_FileQueue ; //store ftp transmit file info.
  44. CDeleteFileQueue  m_DeleteFileQueue ; //store ftp delete file list.
  45. //protected member variable
  46. protected:
  47. THREADINFO m_ControlThread ; //the control thread info.
  48. THREADINFO  m_AbordThread ; //the abort command thread info.
  49. SOCKET m_hControlSocket ; //control socket handle .
  50. HANDLE m_hEvent ; //sync event.
  51. BOOL m_bIsConnected ; //ftp connected status.
  52. THREADINFO* m_pThreadQueue ; //thread queue.
  53. int m_iWhenExistAction ; //what action will do , when file exist
  54. BOOL m_bAskUser ; //is ask user how to do , when file exist.
  55. CSelectActionDlg m_SelActionDlg ;
  56. //protected member function .
  57. protected:
  58. __int64 FindFileInFileList( LPCTSTR szFileName , FTPITEM* pFileList );
  59. BOOL RemoveFtpDirectory( LPSTR szDirName );
  60. BOOL DeleteFtpFile( LPSTR szFileName );
  61. BOOL CheckBrokenDownload( );
  62. BOOL CheckServerType( );
  63. void ClearUpReceiveBuffer( );
  64. BOOL PutGetFileFunction( FTPFILEINFO* pParam );
  65. BOOL CreateFtpDirectory( LPCTSTR szPath );
  66. void SendStatusStr( char* pText );
  67. BOOL SendFileNameToParentWnd( LPCTSTR szName );
  68. BOOL MakeBrokenPos( char* szCommand , FTPFILEINFO* pFile , HANDLE hFile );
  69. HANDLE OpenLocalFile( FTPFILEINFO* pFile , LPCTSTR szPathName );
  70. __int64 FindFileInLocal( LPCTSTR szPathName );
  71. //public member function .
  72. public:
  73. BOOL BrokenDownload( FTPFILEINFO* pFile );
  74. BOOL IsConnect() ;
  75. BOOL DeleteFtpDirectory( FTPFILEINFO* pFileInfo );
  76. BOOL AbordThreadFunction( );
  77. BOOL DownLoadDirectory( FTPFILEINFO* pFileInfo );
  78. BOOL UploadDirectory( FTPFILEINFO* pFileInfo );
  79. BOOL MakeFtpDownloadPath( FTPFILEINFO *pFileInfo );
  80. BOOL FreeItemList( FTPITEM* pFtpItem );
  81. BOOL MakeFtpUploadPath( FTPFILEINFO* pFileInfo );
  82. BOOL ListDirectory(  BOOL bWantSend  );
  83. BOOL GetCurrentFtpDir( );
  84. BOOL EnterFtpDirectory( LPSTR strPath );
  85. UINT ReadDataCannel(SOCKET hControlSocket, SOCKET hDataSocket , BOOL bWantSend );
  86. void ParseDirectroyInfo( CString buffer , BOOL bWantSend );
  87. };
  88. #endif // !defined(AFX_FTPTRANSMITFILE_H__9FBE8C59_B355_4146_8A7D_5C771C57570C__INCLUDED_)