Я запускаю этот код в Windows 7 Pro:
foreach(QString str, directorie.entryList(QStringList(), QDir::Dirs))
{
if(str != "." && str != "..")
{
QDir path(directorie.path() + "\\" + str + "\\" + from.path());
if(path.exists())
{
QDir toPath(directorie.path() + "\\" + str + "\\" + to.path() + "\\" + path.dirName());
QDir make(directorie.path() + "\\" + str);
qDebug() << make.mkpath(to.path() + "\\" + path.dirName());
QDir dir;
qDebug() << dir.rename(path.path(), toPath.path()) << path.path() << toPath.path();
}
}
}
Для каждого каталога, который я пытаюсь переместить, переименуйте return false
Я проверяю: старый путь существует, новый путь создан. У меня достаточно прав на оба каталога.
Каталог находится на другом сервере (начинается с "\\"). Можно скопировать в этот каталог из любого места (даже с совершенно другого сервера)
Кто-нибудь знает, почему это не работает? Что я сделал не так ? У вас есть альтернативное решение?
РЕДАКТИРОВАТЬ: по загадочной причине он больше не делает toPath