Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    spostarsi all'interno di cartelle in server ftp

    salve a tutti, ho un piccolo problema riguardo questa riga di codice:

    codice:
    fileincartella = Directory.GetFiles(percorsoprincipale & "/Dati")
    l'errore è Operator '&' is not defined for types 'System.Net.WebClient' and 'String'

    questa è la dichiarazione di percorsoprincipale
    Dim percorsoprincipale As New System.Net.WebClient


    help!
    grazie a tutti in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    percorsoprincipale non è una stringa ma un webclient ... cosa c'entra con la stringa e con GetFiles ? Directory e GetFiles si riferisce ad una cartella locale, non remota.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3

    Moderazione

    Inoltre, il linguaggio di riferimento va specificato anche nel titolo, ora correggo io, in futuro ricordatene.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Si, scusate per il titolo, me ne sono completamente dimenticato...
    Riguardo l'istruzione, come mi posso riferire ad una cartella remota?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non è banale ... non puoi avere un suggerimento che effettui il miracolo ...

    Devi usare un oggetto di classe FtpClient e inviare i corretti comandi FTP e ricevere le risposte.

    Cerca su google VB.NET FTP Client
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    ok, allora questo è il codice che sono riuscito a fare:

    codice:
    Dim cartella As String = "ftp://localhost/prova/"
    
    'prendo il nome della voce selezionata
    Dim selezionato As String = ListBox1.SelectedItem
    
    Dim percorso_file As String = cartella & selezionato & "/" 
    
    MsgBox(percorso_file) 'esce ad esempio:"ftp://localhost/prova/data/"
    
    Dim ftpWebReq As Net.FtpWebRequest = CType(Net.WebRequest.Create(cartella), Net.FtpWebRequest)
    
    ftpWebReq.Method = Net.WebRequestMethods.Ftp.ListDirectory
    ftpWebReq.Credentials = New Net.NetworkCredential("utente", "psw")
    Dim ftpWebResp As Net.FtpWebResponse = CType(ftpWebReq.GetResponse(), Net.FtpWebResponse)
    Dim streamer As IO.Stream = ftpWebResp.GetResponseStream()
    Dim reader As New IO.StreamReader(streamer)
    
    'fai il ciclo per tutti gli elementi
    Do 
    
         cartella = reader.ReadLine()
         If Not cartella Is Nothing Then
              ListBox1.Items.Add(cartella)
         End If
    
    'finisci il ciclo quando non c'è nessuna linea
    Loop Until cartella Is Nothing
    ListBox2.Items.Add(reader.ReadLine())     'qui ho un' errore
    nell'ultima riga ricevo questo errore:
    Impossibile accedere a un oggetto eliminato.
    Nome oggetto: 'System.Net.Sockets.NetworkStream'.

    naturalmente la cartella è piena, ed esiste (il percorso è quello)...

    come posso risolvere?
    grazie in anticipo

  7. #7
    Originariamente inviato da inviasubito
    ok, allora questo è il codice che sono riuscito a fare:

    codice:
    Dim cartellaselezionata As String = Nothing
    cartellaselezionata = ListBox1.SelectedItem.ToString
    Dim cartella As String = "ftp://localhost/prova/" & cartellaselezionata
    
    
    'prendo il nome della voce selezionata
    Dim selezionato As String = ListBox1.SelectedItem
    
    Dim percorso_file As String = cartella & selezionato & "/" 
    
    MsgBox(percorso_file) 'esce ad esempio:"ftp://localhost/prova/data/"
    
    Dim ftpWebReq As Net.FtpWebRequest = CType(Net.WebRequest.Create(cartella), Net.FtpWebRequest)
    
    ftpWebReq.Method = Net.WebRequestMethods.Ftp.ListDirectory
    ftpWebReq.Credentials = New Net.NetworkCredential("utente", "psw")
    Dim ftpWebResp As Net.FtpWebResponse = CType(ftpWebReq.GetResponse(), Net.FtpWebResponse)
    Dim streamer As IO.Stream = ftpWebResp.GetResponseStream()
    Dim reader As New IO.StreamReader(streamer)
    
    'fai il ciclo per tutti gli elementi
    Do 
    
         cartella = reader.ReadLine()
         If Not cartella Is Nothing Then
              ListBox1.Items.Add(cartella)
         End If
    
    'finisci il ciclo quando non c'è nessuna linea
    Loop Until cartella Is Nothing
    ListBox2.Items.Add(reader.ReadLine())     'qui ho un' errore
    nell'ultima riga ricevo questo errore:
    Impossibile accedere a un oggetto eliminato.
    Nome oggetto: 'System.Net.Sockets.NetworkStream'.

    naturalmente la cartella è piena, ed esiste (il percorso è quello)...

    come posso risolvere?
    grazie in anticipo
    risolto sostituendo l'ultima riga con "ListBox1.Items.Add(cartella)" (all'interno del ciclo, errore di distrazione...)

    per spostarsi all'interno della cartella ftp, basta aggiungere queste righe prima di tutto (le ho aggiunte anche qui sopra):

    codice:
    Dim cartellaselezionata As String = Nothing
    cartellaselezionata = ListBox1.SelectedItem.ToString
    Dim cartella As String = "ftp://localhost/prova/" & cartellaselezionata
    la seconda riga assume il valore selezionato dalla listbox, quindi il percorso cambia.
    grazie comunque a tutti ciao!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.