Порт FTP по умолчанию и примеры кода для Python, Java и C#

Портом по умолчанию для FTP (протокола передачи файлов) является порт номер 21. Вот несколько методов с примерами кода для работы с FTP на различных языках программирования:

  1. Python:

    import ftplib
    # Connect to FTP server
    ftp = ftplib.FTP("ftp.example.com")
    ftp.login("username", "password")
    # List files in the current directory
    files = ftp.nlst()
    print(files)
    # Download a file
    filename = "example.txt"
    with open(filename, "wb") as file:
    ftp.retrbinary("RETR " + filename, file.write)
    # Upload a file
    filename = "example.txt"
    with open(filename, "rb") as file:
    ftp.storbinary("STOR " + filename, file)
    # Disconnect from the FTP server
    ftp.quit()
  2. Java:

    import org.apache.commons.net.ftp.FTP;
    import org.apache.commons.net.ftp.FTPClient;
    public class FTPExample {
    public static void main(String[] args) {
        FTPClient ftp = new FTPClient();
        try {
            // Connect to FTP server
            ftp.connect("ftp.example.com", 21);
            ftp.login("username", "password");
            // List files in the current directory
            String[] files = ftp.listNames();
            for (String file : files) {
                System.out.println(file);
            }
    // Download a file
            String filename = "example.txt";
            ftp.setFileType(FTP.BINARY_FILE_TYPE);
            ftp.retrieveFile(filename, new FileOutputStream(filename));
            // Upload a file
            filename = "example.txt";
            ftp.setFileType(FTP.BINARY_FILE_TYPE);
            ftp.storeFile(filename, new FileInputStream(filename));
            // Disconnect from the FTP server
            ftp.logout();
            ftp.disconnect();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    }
  3. C#:

    using System;
    using System.IO;
    using System.Net;
    class Program
    {
    static void Main(string[] args)
    {
        string server = "ftp://ftp.example.com";
        string username = "username";
        string password = "password";
        // List files in the current directory
        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(server);
        request.Method = WebRequestMethods.Ftp.ListDirectory;
        request.Credentials = new NetworkCredential(username, password);
        FtpWebResponse response = (FtpWebResponse)request.GetResponse();
        StreamReader reader = new StreamReader(response.GetResponseStream());
        string line = reader.ReadLine();
        while (!string.IsNullOrEmpty(line))
        {
            Console.WriteLine(line);
            line = reader.ReadLine();
        }
        reader.Close();
        response.Close();
        // Download a file
        string filename = "example.txt";
        request = (FtpWebRequest)WebRequest.Create(server + "/" + filename);
        request.Method = WebRequestMethods.Ftp.DownloadFile;
        request.Credentials = new NetworkCredential(username, password);
        response = (FtpWebResponse)request.GetResponse();
        Stream stream = response.GetResponseStream();
        StreamReader fileStream = new StreamReader(stream);
        using (StreamWriter writer = new StreamWriter(filename))
        {
            writer.Write(fileStream.ReadToEnd());
        }
        fileStream.Close();
        response.Close();
        // Upload a file
        filename = "example.txt";
        request = (FtpWebRequest)WebRequest.Create(server + "/" + filename);
        request.Method = WebRequestMethods.Ftp.UploadFile;
        request.Credentials = new NetworkCredential(username, password);
        using (FileStream fileStream = new FileStream(filename, FileMode.Open))
        {
            byte[] buffer = new byte[1024];
            int bytesRead;
            Stream requestStream = request.GetRequestStream();
            while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) > 0)
            {
                requestStream.Write(buffer, 0, bytesRead);
            }
            requestStream.Close();
        }
    // Disconnect from the FTP server
        Console.WriteLine("File uploaded!");
    }
    }