from ctypes import *
          import os
          import sys
          import ftplib

          class KANFtp:
          ??? ftp = ftplib.FTP()
          ??? bIsDir = False
          ??? path = ""
          ??? def __init__(self, host):
          ??????? self.ftp.connect( host )
          ???????????
          ??? def Login(self, user, passwd ):
          ??????? self.ftp.login( user, passwd )
          ??????? print self.ftp.welcome
          ??? def DownLoadFile( self, LocalFile, RemoteFile ):
          ??????? file_handler = open( LocalFile, 'wb' )
          ??????? self.ftp.retrbinary( "RETR %s" %( RemoteFile ), file_handler.write )
          ??????? file_handler.close()
          ??????? return True
          ???
          ??? def UpLoadFile( self, LocalFile, RemoteFile ):
          ??????? if os.path.isfile( LocalFile ) == False:
          ??????????? return False
          ??????? file_handler = open( LocalFile, "rb" )
          ??????? self.ftp.storbinary( 'STOR %s'%RemoteFile, file_handler, 4096 )
          ??????? file_handler.close()
          ??????? return True

          ??? def UpLoadFileTree( self, LocalDir, RemoteDir ):
          ??????? if os.path.isdir( LocalDir ) == False:
          ??????????? return False
          ??????? LocalNames = os.listdir( LocalDir )
          ??????? self.ftp.cwd( RemoteDir )
          ??????? for Local in LocalNames:
          ??????????? src = os.path.join( LocalDir, Local)
          ??????????? if os.path.isdir( src ):
          ??????????????? self.UpLoadFileTree( src, Local )
          ??????????? else:
          ??????????????? self.UpLoadFile( src, Local )
          ???????????????
          ??????? self.ftp.cwd( ".." )
          ??????? return
          ???
          ??? def DownLoadFileTree( self, LocalDir, RemoteDir ):
          ??????? if os.path.isdir( LocalDir ) == False:
          ??????????? os.makedirs( LocalDir )
          ??????? self.ftp.cwd( RemoteDir )
          ??????? RemoteNames = self.ftp.nlst()?
          ??????? for file in RemoteNames:
          ??????????? Local = os.path.join( LocalDir, file )
          ??????????? if self.isDir( file ):
          ??????????????? self.DownLoadFileTree( Local, file )???????????????
          ??????????? else:
          ??????????????? self.DownLoadFile( Local, file )
          ??????? self.ftp.cwd( ".." )
          ??????? return
          ???
          ??? def show( self, list? ):
          ??????? result = list.lower().split( " " )
          ??????? if self.path in result and "<dir>" in result:
          ??????????? self.bIsDir = True
          ????
          ??? def isDir( self, path ):
          ??????? self.bIsDir = False
          ??????? self.path = path
          ??????? #this ues callback function ,that will change bIsDir value
          ??????? self.ftp.retrlines( 'LIST', self.show )
          ??????? return self.bIsDir

          ftp = KANFtp('192.168.21.10')
          ftp.Login('XXX','XXXX')

          #ftp.DownLoadFile('TEST.TXT', 'public\\hechangmin\\TEST.TXT')#ok
          #ftp.UpLoadFile('TEST.TXT', 'public\\hechangmin\\TEST.TXT')#ok
          #ftp.DownLoadFileTree('HECM', 'public\\hechangmin\\xxx\\')#ok
          ftp.UpLoadFileTree('ts',"Public\\hechangmin\\testFTP" )
          print "ok!"

          這個是我同事代碼。我只是修改一小部分。本blog以流水賬形式記錄著學(xué)習(xí)的點點滴滴。

          posted on 2008-04-15 13:54 -274°C 閱讀(750) 評論(0)  編輯  收藏 所屬分類: python

          常用鏈接

          留言簿(21)

          隨筆分類(265)

          隨筆檔案(242)

          相冊

          JAVA網(wǎng)站

          關(guān)注的Blog

          搜索

          •  

          積分與排名

          • 積分 - 916114
          • 排名 - 40

          最新評論

          主站蜘蛛池模板: 西畴县| 龙胜| 鲁山县| 浮山县| 麻阳| 济阳县| 夹江县| 竹北市| 莲花县| 仁怀市| 岚皋县| 武邑县| 吉林市| 南召县| 盐津县| 合江县| 天等县| 犍为县| 夹江县| 汝南县| 肇东市| 天镇县| 油尖旺区| 台中县| 万宁市| 佳木斯市| 长海县| 镇康县| 永泰县| 富平县| 扶绥县| 汉沽区| 宣汉县| 葵青区| 江阴市| 佛山市| 晋城| 吉林市| 象山县| 全椒县| 德化县|