Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Detectar si un archivo existe en un FTP

Estas en el tema de Detectar si un archivo existe en un FTP en el foro de Visual Basic clásico en Foros del Web. Buenas. Tengo el siguiente problema, con mi cliente FTP, si subes un archivo, el cual ya existe en la carpeta remota del FTP, lo sobrescribira ...
  #1 (permalink)  
Antiguo 14/01/2009, 08:27
 
Fecha de Ingreso: enero-2009
Mensajes: 20
Antigüedad: 15 años, 3 meses
Puntos: 0
Pregunta Detectar si un archivo existe en un FTP

Buenas.

Tengo el siguiente problema, con mi cliente FTP, si subes un archivo, el cual ya existe en la carpeta remota del FTP, lo sobrescribira sin preguntar. Lo que yo necesito es que si ya existe el archivo que vamos a subir, no deje subirlo.

Esto iria en el "button" de comenzar a subir pero no se ni como ni donde añadirlo:

Cita:
Private Sub comenzarboton_Click()
Dim lTimer As Long
Dim strRemote As String
Dim strLocal As String
Dim Y As String
If ListView3.ListItems.Count = 0 Then
MsgBox "No hay archivos en la lista de tareas."
Exit Sub
End If

Do Until ListView3.ListItems.Count = 0
Label14.Visible = True
frmmain.mFTP.SetModePassive
DoEvents
DoEvents
frmmain.mFTP.SetTransferBinary
DoEvents
DoEvents
DoEvents
BeginTransfer = Timer
Timer2.Enabled = True
DoEvents

Label7.Caption = " " & ListView3.SelectedItem.Text
DoEvents
Y = TxtRemotePath.Text
DoEvents
DoEvents
If Y = ListView3.SelectedItem.SubItems(2) Then

Else
mFTP.SetFTPDirectory ListView3.SelectedItem.SubItems(2)
DoEvents
DoEvents
RefreshDirectoryListing
DoEvents
DoEvents
End If
DoEvents
DoEvents
DoEvents
DoEvents

If ListView3.SelectedItem.SubItems(5) = "Descargar" Then
strRemote = ListView3.SelectedItem.Text
strLocal = ListView3.SelectedItem.SubItems(1) & "\" & ListView3.SelectedItem.Text

If mFTP.FTPDownloadFile(strLocal, strRemote) Then

Else
MsgBox mFTP.GetLastErrorMessage & "No se ha completado el proceso."
Label14.Visible = False
serpiente.Visible = False
ListView2.Visible = True
Exit Sub
End If
DoEvents
DoEvents
End If

If ListView3.SelectedItem.SubItems(5) = "Subir" Then
strRemote = ListView3.SelectedItem.Text
strLocal = ListView3.SelectedItem.SubItems(1)

If mFTP.FTPUploadFile(strLocal, strRemote) Then

Else
MsgBox mFTP.GetLastErrorMessage & "No se ha completado el proceso."
Label14.Visible = False
serpiente.Visible = False
ListView2.Visible = True
Exit Sub
End If
DoEvents
DoEvents
End If
TxtTotalBytesQueued.Text = TxtTotalBytesQueued.Text - ListView3.SelectedItem.SubItems(4)
DoEvents
DoEvents
ListView3.ListItems.Remove 1
DoEvents
Loop
RefreshDirectoryListing
Timer2.Enabled = False
Label10.Caption = "Tiempo Transcurrido: 00:00:00"
Text1.Text = "0"
DoEvents
RefreshDirectoryListing

End Sub
------

Saludos y gracias
  #2 (permalink)  
Antiguo 15/01/2009, 06:27
 
Fecha de Ingreso: enero-2009
Mensajes: 20
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Detectar si un archivo existe en un FTP

Alguien que me ayude?
  #3 (permalink)  
Antiguo 15/01/2009, 20:35
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Detectar si un archivo existe en un FTP

Que tal tio yo tengo un ejemplo que me baje de recursos visual basic y la cosa esta asi

Código:
For i = 1 To ListView1.ListItems.Count
    If cd.FileTitle = ListView1.ListItems(i) Then
       If MsgBox("El archivo que itenta subir ya existe. ¿Sobreescribirlo?", _
                  vbQuestion + vbYesNo) = vbYes Then
          
          ListView1.ListItems.Remove i
          Ftp.SubirArchivo cd.FileName, cd.FileTitle
          Exit Sub
        Else
          Exit For
       End If
    End If
Next
cd es un control commong dialog, como veras si cd.FileTitle es igual al listview es decir a lo que hay en el server ftp sale un mensaje para aceptar(sobrescribir) o cancelar la subida del archivo, espero te sirva
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:29.