qftp 예제

이제 보다 고급 예제를 살펴보겠습니다. 스파이더 명령줄 프로그램은 FTP 디렉터리에있는 모든 파일을 다운로드하여 모든 디렉토리의 하위 디렉토리에서 재귀적으로 다운로드합니다. 네트워크 논리는 Spider 클래스에 있습니다: QFtp는 다음 작업을 제공합니다: connectToHost(), 로그인(), close(), 목록(), cd(), get(), put(), remove(), mkdir(), rmdir(), 및 이름 바꾸기(). 이러한 모든 함수는 FTP 명령을 예약하고 명령을 식별하는 ID 번호를 반환합니다. 임의의 FTP 명령은 rawCommand()를 사용하여 실행할 수 있습니다. 예를 들어 사이트 CHMOD 명령을 실행하는 방법은 다음과 같습니다: QNetworkProtocol 인터페이스와 함께 QFtp를 사용하려는 경우 QUrlOperator를 직접 사용하지 않고 QUrlOperator를 통해 사용하십시오. 중단이 발생한 경우에도 긍정적인 응답을 잘못 반환합니다. 이러한 서버의 경우 명령이 성공적으로 완료되지 않았더라도 명령완성() 신호에 오류 플래그가 FALSE로 설정되어 있습니다. FTP 예제에서는 FTP 서버에 사용 가능한 파일을 나열하고 다운로드하는 데 사용할 수 있는 간단한 FTP 클라이언트를 보여 줍니다. 두 예제 에서 get()를 사용하여 검색된 데이터가 QFile에 기록되었습니다. 이 경우 일 필요는 없습니다.

메모리에 데이터를 원한다면 QByteArray를 래핑하는 QIODevice 하위 클래스인 QBuffer를 사용할 수 있습니다. 예를 들어 QFtp는 명령 실행이 시작될 때 commandStarted(int) 신호를 방출하고 명령이 완료되면 완료(int, bool) 신호를 보냅니다. int 매개 변수는 명령을 식별하는 ID 번호입니다. 개별 명령의 운명에 관심이 있다면 명령을 예약할 때 ID 번호를 저장할 수 있습니다. ID 번호를 추적하면 사용자에게 자세한 피드백을 제공할 수 있습니다. 예를 들어 위의 예제에 대해 로그인이 실패하면 신호는 다음과 같습니다. 그런 다음 서버의 최상위 디렉터리 목록이 파일 목록 트리 보기에 표시됩니다. 뷰에서 선택한 항목이 파일인 경우 사용자는 다운로드 단추를 눌러 다운로드할 수 있습니다. 디렉토리를 나타내는 항목을 마우스로 두 번 클릭하여 뷰에서 해당 디렉터리 내용을 표시할 수 있습니다. 예를 들어 사용 가능한 항목이 있는 즉시 사용자에게 데이터를 표시하려면 readyRead() 신호에 연결하고 데이터를 즉시 읽으십시오.