Russian Qt Forum
Ноябрь 24, 2024, 02:54
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Как скопировать файл или папку в Qt?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как скопировать файл или папку в Qt? (Прочитано 11660 раз)
Evgeny108
Гость
Как скопировать файл или папку в Qt?
«
:
Июль 12, 2006, 16:30 »
Как скопировать файл или целую папку с файлами в Qt?
Записан
L.Marvell
Гость
Как скопировать файл или папку в Qt?
«
Ответ #1 :
Июль 12, 2006, 18:16 »
Быть может QFile::copy()? Создание диры QDir::mkdir()
Записан
Evgeny108
Гость
Как скопировать файл или папку в Qt?
«
Ответ #2 :
Июль 13, 2006, 08:31 »
Использую Qt 3.3.4, там нет QFile::copy...
Записан
L.Marvell
Гость
Как скопировать файл или папку в Qt?
«
Ответ #3 :
Июль 13, 2006, 12:06 »
Тогда извини, 3 не знаю.
Записан
DenKor
Гость
Как скопировать файл или папку в Qt?
«
Ответ #4 :
Июль 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);
}
Записан
Negative
Гость
Как скопировать файл или папку в Qt?
«
Ответ #5 :
Июль 13, 2006, 15:22 »
http://lists.trolltech.com/qt-interest/2003-10/msg01051.html
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...