W ramach nauki biblioteki Qt piszę prosty klient FTP, w oparciu o informacje znalezione w internecie. Na podstawie artykułów z linux.com.pl napisałem już obsługę listowania katalogów i plików na serwerze. Kolejnym krokiem jest pobieranie plików, i na tym się zatrzymałem. Bazując na referencjach Qt napisałem taki kod:
Kod: Zaznacz cały
void KlientFtp::pobieraj()
{
if(ui->pobierz->isEnabled())
{
QString nazwa = ui->listaSerwer->currentItem()->text(0);
plik = new QFile(nazwa);
if(!plik->open(QIODevice::WriteOnly))
{
ui->statusBar->showMessage("Blad pobierania pliku",1000);
ftp->abort();
delete plik;
return;
}
else
{
ui->statusBar->showMessage("Rozpoczynam pobieranie");
ftp->setTransferMode(QFtp::Passive);
ftp->get(ui->listaSerwer->currentItem()->text(0),plik);
ui->statusBar->showMessage("zakonczono");
plik->close();
delete plik;
}
}
}
Dziwi mnie to, ponieważ linijka "if(!plik->open(QIODevice::WriteOnly))" jednoznacznie stwierdza że plik ma być otwarty w trybie zapisu.
Będę bardzo wdzięczny za pomoc.
Pozdrawiam.