(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
|
FTP.vb
Const BUFFSIZE Jako Integer = 4096
Przyjaciel Funkcja ReceiveFile (ByVal sLocalFilename Sznurek, ByVal sRemoteFilename Jako Sznurek, ByVal XferMode Jako TransferMode) Boolowski
Ciemnawy objLocalFileStream Jako FileStream
Ciemnawy mTCPData Jako Nowy TcpClient
Ciemnawy mDataStream Jako NetworkStream
Ćmić Port Jako Integer = 20
Ćmić strIPAddress Sznurek
Ćmić sOut Jako Sznurek = ""
Jeżeli (bConnectionOpen) Wtedy
Rzut Nowy FtpClientException ((0), "ReceiveFile" & vbCrLf & "Związek otwarty")
Kończyć Jeżeli
Próba
objLocalFileStream = Nowy FileStream (sLocalFilename, FileMode.Create, FileAccess.ReadWrite, FileShare.Read, BUFFSIZE, Fałszywy)
Chwyt fileNotFoundException Jako FileNotFoundException
Rzut Nowy FtpClientException ((0), "Otwarty Lokalny Kartoteka - Kartoteka Znajdować (" & vbCrLf & sLocalFilename & vbCrLf & znajdować. Wiadomość)
Chwyt directoryNotFoundException Jako DirectoryNotFoundException
Rzut Nowy FtpClientException ((0), "Otwarty Lokalny Kartoteka - Książka telefoniczna Znajdować" & vbCrLf & sLocalFilename & vbCrLf & znajdować. Wiadomość)
Chwyt securityException Jako SecurityException
Rzut Nowy FtpClientException ((0), "Otwarty Lokalny Kartoteka" & vbCrLf & sLocalFilename & vbCrLf & lokalny. Wiadomość)
Chwyt unauthorizedAccessException Jako UnauthorizedAccessException
Rzut Nowy FtpClientException ((0), "Otwarty Lokalny Kartoteka" & vbCrLf & sLocalFilename & vbCrLf & lokalny. Wiadomość)
Chwyt wyjątek Jako Wyjątek
Rzut Nowy FtpClientException ((0), "Otwarty Lokalny Kartoteka" & vbCrLf & sLocalFilename & vbCrLf & lokalny. Wiadomość)
Końcówka Próba
'Set przeniesienie tryb
Wybrany Skrzynka XferMode
Skrzynka TransferMode.Ascii
SendFTPCommand ("PISAĆ NA MASZYNIE A")
sOut = ReadReply ()
Skrzynka TransferMode.Binary
SendFTPCommand ("TYP I")
sOut = ReadReply ()
Końcówka Wybiórka
Application.DoEvents ()
'
'
Wywoławczy ReadyDataSocketAndSendCommand ("RETR" & Path.GetFileName (sRemoteFilename), "ReceiveFile", mTCPData, mDataStream)
Ciemnawy bData (8192) Jako Bajt
Ciemnawy bytesRead Jako Integer = (0)
'Odzyskiwać the kartoteka
Próba
bytesRead = mDataStream.Read (bData, (0), bData.Length)
objLocalFileStream.Write (bData, (0), bytesRead)
Application.DoEvents ()
Zapętlać Podczas Gdy mDataStream.DataAvailable
'Oryginalnie otrzymywać wielkościowy błąd tutaj odnośnie the sieć strumień,
'metoda przepisywać above zagadnienie. BUFFSIZE być mały
'bData.
'bytesRead = mDataStream.Read (bData, (0), BUFFSIZE)
'Robić Podczas Gdy (bytesRead > (0))
'objLocalFileStream.Write (bData, (0), bytesRead)
'bytesRead = mDataStream.Read (bData, (0), BUFFSIZE)
'Application.DoEvents ()
'Pętla
Chwyt wyjątek Jako Wyjątek
DBGeneralError ("FTP.ReceiveFile", Err.GetException ())
objLocalFileStream.Close ()
objLocalFileStream = Nic
mDataStream.Close ()
mDataStream = Nic
mTCPData.Close ()
mTCPData = Nic
Thread.Sleep (400)
sOut = ReadReply ()
'Jeżeli my dostawać tutaj, my nie udać się.
Powrotny Fałszywy
Końcówka Próba
objLocalFileStream.Close ()
objLocalFileStream = Nic
mDataStream.Close ()
mDataStream = Nic
mTCPData.Close ()
mTCPData = Nic
Thread.Sleep (400)
sOut = ReadReply ()
'Jeżeli my dostawać tutaj, my musieć dobry.
Powrotny Prawdziwy
Końcówka Funkcja
Okręt podwodny ReadyDataSocketAndSendCommand (ByVal strCommand Jako Sznurek, ByVal strMethodName Sznurek, ByRef mTCPData Jako TcpClient, ByRef mDataStream Jako NetworkStream)
Ciemnawy sOut Sznurek
Ciemnawy strIPAddress Sznurek
Jeżeli (bConnectionOpen) Wtedy
Rzut Nowy FtpClientException ((0), strMethodName & vbCrLf & "Związek otwarty")
Kończyć Jeżeli
'
'Set Bezwolny Tryb
'
'Bezwolny tryb otwierać the związek na the daleki komputer i powrót ()
'portowy liczba. Opóźniony, wiadomość powodować wiadomość 125. Żadny zmartwienie! ()
'Który być ' przypuszczać.
'
SendFTPCommand ("PASV")
sOut = ReadReply ()
Jeśli nie ReplyContains ("227", sOut, strErrorCode, strErrorMessage) Wtedy
Rzucać Nowy FtpClientException (CInt (strErrorCode), "PASV" & vbCrLf & strErrorMessage)
Kończyć Jeżeli
ParsePASVResult (sOut, strIPAddress, Port)
Application.DoEvents ()
'
'Otwierać nasadka
'
Próba
mTCPData = Nowy TcpClient (strIPAddress, Port)
Chwyt wyjątek Jako Wyjątek
Rzut Nowy FtpClientException ((0), "Otwarty Nasadka" & vbCrLf & strIPAddress &" "& Port.ToString & vbCrLf & otwarty. Wiadomość)
Końcówka Próba
mTCPData.ReceiveBufferSize = BUFFSIZE
mTCPData.SendBufferSize = BUFFSIZE
Próba
mDataStream = mTCPData.GetStream ()
Chwyt wyjątek Jako Wyjątek
Rzut Nowy FtpClientException ((0), "GetStream" & vbCrLf & strIPAddress &" "& Port.ToString & vbCrLf & (0). Wiadomość)
Końcówka Próba
'Wysyłać the FTP Rozkaz the FTP Serwer
SendFTPCommand (strCommand)
sOut = ReadReply ()
'My dostawać lub potwierdzenie the ściąganie lub błąd Wiadomość ()
Jeśli nie ReplyContains ("150", sOut, strErrorCode, strErrorMessage) AndAlso Nie ReplyContains ("125", sOut, strErrorCode, strErrorMessage) Wtedy
Rzucać Nowy FtpClientException (CInt (strErrorCode), strCommand & vbCrLf & strErrorMessage)
Kończyć Jeżeli
Kończyć Okręt podwodny
|