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

    [C#] Il mio FTP non riconosce i comandi

    Ciao a tutti... Ho un piccolo problema con un piccolo interrogatore di Server che sto realizzando. Premetto che ho già guardato su tutti i possibili siti una possibile realizzazione, ho provato in tutti i modi, con le socket e qualsiasi altra cosa. Il tutto funziona con la porta 80 su qualsiasi normale sito internet (google ecc.). Se passo ad FTP invece... la risposta è sempre la stessa da qualsiasi sito ftp con cui provi a dialogare: "URI richiesto non valido per questo comando FTP".

    Ho trovato un modo di procedere che riesce a far funzionare almeno il comando NLST (WebRequestMethods.Ftp.ListDirectory), il seguente:

    codice:
    WebRequest request = WebRequest.Create(host);
    ((FtpWebRequest)request).KeepAlive = false;
    ((FtpWebRequest)request).UseBinary = true;
    ((FtpWebRequest)request).UsePassive = false;
    request.Method = WriteFtpMethods(); //questa funzione restituisce un metodo fra quelli proposti dal framework (WebRequestMethods.Ftp.UploadFile, WebRequestMethods.Ftp.DownloadFile, WebRequestMethods.Ftp.ListDirectory, WebRequestMethods.Ftp.MakeDirectory ecc.)
    
    request.Credentials = new NetworkCredential(username, password);
    
    WebResponse response = request.GetResponse();
    Stream stream = response.GetResponseStream();
    
    byte[] buffer = new byte[20];
    char[] line = new char[20];
    StringBuilder builder = new StringBuilder();
    int nByte = 0;
    
    while ((nByte = stream.Read(buffer, 0, 20)) != 0)
    {
        line = new char[20];
        for (int i = 0; i < nByte; i++)
        {
            line[i] = (char)buffer[i];
        }
        builder.Append(new string(line));
    }
    
    stream.Close();
    response.Close();
    
    //.... scrittura del valore del builder ecc. ecc.
    L'host ho provato ad inserirlo nei seguenti modi:
    - ftp://ftp.host.it
    - ftp.host.it
    - ftp://ipaddress
    - ipaddress

    Ora mi domando, perchè NLST funziona, mentre gli altri comandi no?


    Ovviamente username e password sono corretti, ho provato su più ftp ed è sempre la stessa identica storia! Non può essere il firewall, perchè con i client come CuteFTP funziona tutto!!

    Quindi cosa può essere?

    Ogni idea è ben accetta!

    Grazie!!
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  2. #2

    ho risolto!

    Dopo molte zuccate ho capito qual'era il problema. Il punto è che avendo Visual Studio in italiano su internet non c'è nessuna documentazione... Appena trovato un messaggio analogo in inglese... Tutto risolto!

    Ecco qual'è il problema:
    codice:
    Uri uri = new Uri("ftp://" + address.ToString() + "/" + fileInf.Name);
    Il nome del file da inviare o da scaricare va specificato al momento della connessione al server... Cosa che non mi era subito chiara!

    Spero possa essere utile a qualcuno.

    Ciao!
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

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.