Russian Qt Forum
Ноябрь 26, 2024, 05:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QFile. Перемещение файла  (Прочитано 8326 раз)
Gomerd
Гость
« : Ноябрь 20, 2010, 18:19 »

Доброго времени суток. Может кто поможет, есть код:
Код:
        fileName = QFileDialog::getOpenFileName(this,
            tr("Select Video File"), "", tr("Video Files (*.avi *.wma *.mpeg *.mp4 *.mov)"));
        QFile videoFile(fileName);

По нажатию на кнопку появляется диалоговое окно, где пользователь выбирает видео файл, затем мне нужно переместить выбранный им файл в специально приготовленную папку. Но такого метода я что то не нашел у QFile, может я неверно копаю?

ЗЫ. Заранее спасибо!
Записан
alexman
Гость
« Ответ #1 : Ноябрь 20, 2010, 18:40 »

bool QFile::copy ( const QString & fileName, const QString & newName ) [static]
Записан
shirushizo
Гость
« Ответ #2 : Ноябрь 20, 2010, 18:46 »

bool QFile::rename ( const QString & newName )
Записан
Yuriy
Гость
« Ответ #3 : Январь 28, 2012, 11:41 »

bool QFile::rename ( const QString & newName )


А интересно. Я распаковываю zip с помощью Qt в папку на том же диске, где мне будут нужны файлы. И потом использую QFile::rename. И что в этом случае происходит Непонимающий Qt их все откопирует, а потом сотрет оригиналы или он их перенесет. А если на разных дисках Dest и Src папки. Не совсем понятно. Может быть кто нибудь разъяснит и может имеет тогда смысл распаковывать файлы по одному и сразу же укладывать с нужными именами в назначенный каталог Непонимающий?
Записан
Yuriy
Гость
« Ответ #4 : Январь 28, 2012, 12:11 »

Ответ в исходниках. не знаю как в 4.8, в 4.7.2 явно видно, что сначала идет копирование, а потом затирание исходного файла. Отсюда и фрагментность файлов и лишняя работа на ж.д.

Не знаю насколько медленно извлекать множество файлов из zip по одному, но судя по всему побыстрее чем в rar-ах, в qzip.cpp:

Код:
    int start = readUInt(header.h.offset_local_header);
    //qDebug("uncompressing file %d: local header at %d", i, start);

    d->device->seek(start);

так что по идее это должно работать быстро, раз считывание архивного файла происходит с заданной позиции...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 21.