QFile file("/home/leviafan/tmp/Новая папка/multiMAN ver 04.05.00 DEX (20120827)/инструкция DEX.txt");
QFileInfo fileInfo(file);
QStringList list1 = fileInfo.path().split("/", QString::SkipEmptyParts);
ftp.connectToHost("192.168.1.1", 21);
ftp.login("root", "123456");
ftp.cd("DISK_A1/test/");
for(int i=0; i < list1.count(); i++)
{
ftp.mkdir(list1[i]);
ftp.cd(list1[i]);
}
if(file.open(QIODevice::ReadOnly))
{
ftp.put(&file, fileInfo.fileName());
}
QEventLoop loop;
connect(&ftp,SIGNAL(done(bool)),&loop,SLOT(quit()));
loop.exec();
ftp.close();
Хочу скопировать на фтп сервер много файлов которые будут в разных папках , но никак не могу придумать как это сделать. Путь к файлу разделяю на название папок и сохраняю названия папок в QStringList list1, далее через цикл перебираю названия папок попутно создавая на фтп сервере соответствующую папку и перехожу в нее. Потом копирую файл, тут проблем нет, все работает, но вот если я начинаю проделывать данную процедуру с другим фалом, то ничего не получается, то есть я создаю папку которая уже есть на сервере и естественно папка не создается, и цикл не выполняется.
for(int i=0; i < list1.count(); i++)
{
ftp.mkdir(list1[i]);
ftp.cd(list1[i]);
}
как сожно проверить существование папки и вставить все это дело в цикл?
Пробовал через QUrlInfo
ftp.list();
connect(&ftp, SIGNAL(listInfo(QUrlInfo)),this, SLOT(addToList(QUrlInfo)));
void MainWindow::addToList(const QUrlInfo &urlInfo)
{
ftplist.append(urlInfo.name().toLatin1());
}
ftplist получает список файлов и папок, но как его влепить в мой цикл? в момент выполнения цикла ftplist еще не заполнен
Пробовал писать вот так
for(int i=0; i < list1.count(); i++)
{
ftp.list();
connect(&ftp, SIGNAL(listInfo(QUrlInfo)),this, SLOT(addToList(QUrlInfo)));
qDebug() << ftplist;
ftp.mkdir(list1[i]);
ftp.cd(list1[i]);
}
qDebug() << ftplist; выдает пустое значение