У меня есть список с указателями на QFile, изначально экземпляры создаются как new QFile(), т.е. в конструктор ничего не передается. А потом я уже через метод QFile::setFileName() ставлю имена файлам. Делается это для того, чтобы мне не мешались пути к файлам, которых еще не существует, т.е. пользователь эти пути выберет позже. Так вот таким образом я сохраняю файлы:
QDir dir(path);
if (!dir.exists())
return false;
QDir::setCurrent(path);
...
QFile &file = *i->file();
if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate))
return false;
file.write(i->data());
При этом все эти файлы создают в папке с программой (.exe файлом), какую бы я ни установил текущую директорию.
Документация к методу QFile::setFileName() говорит следующее:
If the file name has no path or a relative path, the path used will be the application's current directory path at the time of the open() call.
При этом приводится пример:
QFile file;
QDir::setCurrent("/tmp");
file.setFileName("readme.txt");
QDir::setCurrent("/home");
file.open(QIODevice::ReadOnly); // opens "/home/readme.txt" under Unix
Так все-таки какой путь испольуется:
current directory или
application's current directory ?
Судя по тому, что у меня ничего не выходит используется
application's current directory, значит ошибка в документации и пример троллей не работает. Или ошибка в Qt?