diff --git a/src/devices/afctransfer.cpp b/src/devices/afctransfer.cpp index 1149297ef..7986fefcc 100644 --- a/src/devices/afctransfer.cpp +++ b/src/devices/afctransfer.cpp @@ -97,6 +97,10 @@ bool AfcTransfer::CopyDirFromDevice(iMobileDeviceConnection* c, const QString& p bool AfcTransfer::CopyDirToDevice(iMobileDeviceConnection* c, const QString& path) { QDir dir(local_destination_ + path); + if (!c->Exists(path)) { + c->MkDir(path); + } + foreach (const QString& filename, dir.entryList(QDir::Files | QDir::NoDotAndDotDot)) { if (!CopyFileToDevice(c, path + "/" + filename)) return false; diff --git a/src/devices/imobiledeviceconnection.cpp b/src/devices/imobiledeviceconnection.cpp index 45cd39e5e..9b99a64df 100644 --- a/src/devices/imobiledeviceconnection.cpp +++ b/src/devices/imobiledeviceconnection.cpp @@ -144,6 +144,11 @@ QStringList iMobileDeviceConnection::ReadDirectory(const QString& path, return ret; } +bool iMobileDeviceConnection::MkDir(const QString& path) { + afc_error_t err = afc_make_directory(afc_, path.toUtf8().constData()); + return err == AFC_E_SUCCESS; +} + QString iMobileDeviceConnection::GetFileInfo(const QString& path, const QString& key) { QString ret; char** infolist = NULL; diff --git a/src/devices/imobiledeviceconnection.h b/src/devices/imobiledeviceconnection.h index a1aaa6609..9cd8663fe 100644 --- a/src/devices/imobiledeviceconnection.h +++ b/src/devices/imobiledeviceconnection.h @@ -37,6 +37,7 @@ public: QVariant GetProperty(const QString& property, const QString& domain = QString()); QStringList ReadDirectory(const QString& path, QDir::Filters filters = QDir::NoFilter); + bool MkDir(const QString& path); QString GetFileInfo(const QString& path, const QString& key); bool Exists(const QString& path);