ここではおそらく非常に簡単なものが欠けているように感じますが、何を理解するのに途方に暮れています. FTP サーバー上のファイルにアクセスする必要がある C++ 関数 (Qt 4.7 を使用) があります。これを行うには、次の設定を行います。
QString source = "ftp://username:password@ftp.myftpserver.com/directoryname/";
QFtp *ftp = new QFtp(this);
ftp->connectToHost(source);
connect(ftp, SIGNAL(listInfo(QUrlInfo)), this, SLOT(processInfoFromFile(QUrlInfo)));
connect(ftp, SIGNAL(done(bool)), this, SLOT(finishThisProcess()));
ftp->list();
ソースをブラウザに直接入力すると、正しく表示され、ディレクトリ内のすべてのファイルが表示されます。また、プログラム内の別の場所に別の QFtp インスタンス (異なる変数名) を同じ方法でセットアップしました。それが機能します。ただし、これを使用すると、 のディレクトリsource
が空であると単純に解釈され、すぐに にジャンプしfinishThisProcess
ます。足りないものはありますか?ありがとう!
編集:これは ftp クライアントの別のインスタンスです:
ftp2 = new QFtp(this);
QString user = "username";
QString pass = "password";
connect(ftp2, SIGNAL(listInfo(QUrlInfo)), this, SLOT(processInfoFromFile(QUrlInfo)));
connect(ftp2, SIGNAL(done(bool)), this, SLOT(finishThisProcess()));
ftp2->connectToHost("ftp.myftpserver.com");
ftp2->login(user, pass);
ftp2->list();
a) これは 1 つ上のディレクトリ レベルにアクセスしようとすることと、b) ユーザー名とパスワードを別々に宣言してから手動でログインすることを除いて、他のものと同じです。このように問題を引き起こしているものを試しましたが、役に立ちませんでした。