如何获取ftp服务器(C ++)中所有文件和文件夹的列表

时间:2016-11-13 10:47:09

标签: c++ ftp ftp-client

我需要ftp服务器中所有文件和文件夹的列表。

整个服务器是否有与NLST类似的命令,而不仅仅是当前目录?

我使用PASV模式。 这是连接到服务器:

void create_socket(int &sock, const char* server_ip, const unsigned short server_port)
{
  struct sockaddr_in server_addr;

  memset(&server_addr, 0, sizeof(server_addr));// zero out structure
  server_addr.sin_family = AF_INET;// internet address family
  server_addr.sin_addr.s_addr = inet_addr(server_ip);// server IP address
  server_addr.sin_port = htons(server_port);// server port

  if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
  {
  }

  if (connect(sock, (struct sockaddr *) &server_addr, sizeof(server_addr)) < 0)
  {
    std::cout << "connect error: " << strerror(errno) << std::endl;
    exit(1);
  }
}

1 个答案:

答案 0 :(得分:4)

FTP服务命令的完整列表从RFC 959的第29页开始。

没有&#34;列出服务器的全部内容&#34;命令;很可能是因为与访问权限/控制相关的限制(通过rfc文本搜索&#39;访问控制)。