Название: Как скопировать файл или папку в Qt? Отправлено: Evgeny108 от Июль 12, 2006, 16:30 Как скопировать файл или целую папку с файлами в Qt?
Название: Как скопировать файл или папку в Qt? Отправлено: L.Marvell от Июль 12, 2006, 18:16 Быть может QFile::copy()? Создание диры QDir::mkdir()
Название: Как скопировать файл или папку в Qt? Отправлено: Evgeny108 от Июль 13, 2006, 08:31 Использую Qt 3.3.4, там нет QFile::copy...
Название: Как скопировать файл или папку в Qt? Отправлено: L.Marvell от Июль 13, 2006, 12:06 Тогда извини, 3 не знаю.
Название: Как скопировать файл или папку в Qt? Отправлено: DenKor от Июль 13, 2006, 13:08 Тогда функциями winapi CopyFile или пиши свою процедуру копирования для двух файлов (открытие двух файлов, чтение блока,запись блока,закрытие файла).
Второе более кросплатформенное. bool QFile::copy(const QString &newName) { Q_D(QFile); if (d->fileName.isEmpty()) { qWarning("QFile::copy: Empty or null file name"); return false; } close(); if(error() == QFile::NoError) { if(fileEngine()->copy(newName)) { unsetError(); return true; } else { bool error = false; if(!open(QFile::ReadOnly)) { error = true; QString errorMessage = QLatin1String("Cannot open %1 for input"); d->setError(QFile::CopyError, errorMessage.arg(d->fileName)); } else { QTemporaryFile out; if(!out.open()) { close(); error = true; d->setError(QFile::CopyError, QLatin1String("Cannot open for output")); } else { char block[1024]; while(!atEnd()) { qint64 in = read(block, 1024); if(in == -1) break; if(in != out.write(block, in)) { d->setError(QFile::CopyError, QLatin1String("Failure to write block")); error = true; break; } } if(!error && !out.rename(newName)) { error = true; QString errorMessage = QLatin1String("Cannot create %1 for output"); d->setError(QFile::CopyError, errorMessage.arg(newName)); } } } if(!error) { QFile::setPermissions(newName, permissions()); unsetError(); return true; } } } return false; } /*! \overload Copies the file \a fileName to \a newName. Returns true if successful; otherwise returns false. If a file with the name \a newName already exists, copy() returns false (i.e., QFile will not overwrite it). \sa rename() */ bool QFile::copy(const QString &fileName, const QString &newName) { return QFile(fileName).copy(newName); } Название: Как скопировать файл или папку в Qt? Отправлено: Negative от Июль 13, 2006, 15:22 http://lists.trolltech.com/qt-interest/2003-10/msg01051.html
|