PDA

View Full Version : [VB] cancellare un file via FTP


beog
18-01-2004, 11:37
Dopo avervi stressato su come mandare un file via FTP con Vbasic... ora non mi resta che chiedervi come cancellarlo!!!

Grazie 1000

matpez
18-01-2004, 16:33
Applicato al programma che abbiamo fatto insieme viene così:


Private Declare Function FtpDeleteFile Lib "wininet.dll" Alias "FtpDeleteFileA" (ByVal hFtpSession As Long, ByVal lpszFileName As String) As Boolean

call FtpDeleteFile(lConnection, FileName)

beog
19-01-2004, 14:02
"insieme"

direi che hai fatto.

Grazie ancora

matpez
19-01-2004, 14:24
Originariamente inviato da beog
"insieme"

direi che hai fatto.

Grazie ancora

Va be dai nn stiamo a vedere questi particolari :oink:

beog
19-01-2004, 15:38
Ma è giusto scrivere una cosa del genere in un pulsante?


Dim lOpen As Long
Dim lConnection As Long
lOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
lConnection = InternetConnect(lOpen, Hoste, INTERNET_INVALID_PORT_NUMBER, Account, Passw, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0)
Call FtpDeleteFile(lConnection, cartellaFTP & CFlusso)
Call InternetCloseHandle(lConnection)


Perchè mi sembra che la connessione resti aperta anche dopo aver cancellato il file

matpez
19-01-2004, 15:43
E da cosa lo capisci che rimane aperta?

beog
19-01-2004, 15:45
Perchè dopo un po che canc file mi comincia dare err di connessione e con WS_FTP mi dice che ci sono + di 5 account su quel FTP

matpez
19-01-2004, 15:51
...mmm il codice sembra corretto controlla solo che sia lOpen e lConnection siano diversi da 0 altrimenti nn fargli fare altro!

beog
19-01-2004, 15:54
Ho provato anche così, però il prob sembra persistere


Function CancFileFTP() As Boolean

Dim sFileRemote As String
Dim sDirRemote As String
Dim lOpen As Long
Dim lConnection As Long


'trasferisco il file nel FTP
DoEvents

lOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
lConnection = InternetConnect(lOpen, Hoste, INTERNET_INVALID_PORT_NUMBER, Account, Passw, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0)


If lOpen <> 0 And lConnection <> 0 Then


sDirRemote = cartellaFTP 'root
sFileRemote = CFlusso

Call FtpDeleteFile(lConnection, sDirRemote & sFileRemote)


Call InternetCloseHandle(lConnection)

End If

End Function

matpez
19-01-2004, 16:02
Prova così:

Function CancFileFTP() As Boolean

Dim sFileRemote As String
Dim sDirRemote As String
Dim lOpen As Long
Dim lConnection As Long


'trasferisco il file nel FTP
DoEvents

lOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
lConnection = InternetConnect(lOpen, Hoste, INTERNET_INVALID_PORT_NUMBER, Account, Passw, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0)


If lOpen <> 0 And lConnection <> 0 Then


sDirRemote = cartellaFTP 'root
sFileRemote = CFlusso

Call FtpDeleteFile(lConnection, sDirRemote & sFileRemote)


Call InternetCloseHandle(lConnection)

End If

Call InternetCloseHandle(lOpen)
End Function

beog
19-01-2004, 16:43
Penso ci sia un prob più grosso perchè a volte spedisce o cancella i file, altre volte no.

Se es. clicco 2 volte consecutive sul pulsante per spedire un file la prima volta lo spedisce la 2a no... poi asp un po, riprovo e va...