Виталий Антипов
Виталий Антипов21 жовтня 2017 р. 12:28

QFile::copy() возвращает false

Здравствуйте! Необходимо скопировать файл из одной папки в другую.

bool copyfile::cppSlot()
{
    QObject* foto = this->parent()->findChild<QObject*>("foto");
    QString path1=(foto->property("path")).toString();
    QFileInfo fileInfo(path1);
    QString destinationFile = QDir::currentPath() + QString("/foto/") + fileInfo.fileName();
    qDebug() << destinationFile;
    bool result = QFile::copy(path1, destinationFile);
    qDebug() << result;
    return result;
}
Лог:
qml: Accepted: file:///C:/Users/555/Pictures/00GAF13AP001-002.jpg
"D:/Projects/build-V3_0-Desktop_Qt_5_9_2_MinGW_32bit2-Debug/foto/00GAF13AP001-002.jpg"
false
Файл в папке назначения отсутствует, копирование не выполняется. В чем может быть ошибка, подскажите.
Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

6
Evgenii Legotckoi
  • 21 жовтня 2017 р. 12:42

QDir::currentPath() возвращает путь, где находится исполняемый файл программы, если не было никаких иных манипуляций, которые могли изменить текущий путь в рамках приложения.

А этот текущий путь у вас равен
D:/Projects/build-V3_0-Desktop_Qt_5_9_2_MinGW_32bit2-Debug/
У вас в этой папке есть каталог foto?
Если его там нет, то его необходимо создать. метод QFile::copy не создаёт каталоги автоматически. Он только копирует файлы.
    Виталий Антипов
    • 21 жовтня 2017 р. 12:48

    Каталог foto есть.

    Сделал следующую проверку:
    if (!QFile(path1).exists()) {
              qWarning("The source file does not exist");
              return 1;
          }
    И получил
    The source file does not exist
    Путь к копируемому файлу беру отсюда:
    Image {
                            id: image_foto
                            height: image_shema.height
                            width: parent.width
                            anchors.horizontalCenter: parent.horizontalCenter
                            anchors.bottom: parent.bottom
                            anchors.bottomMargin: 5
                            fillMode: Image.PreserveAspectFit
                            source: "Images/add_foto.png"
                            FileDialog {
                                    id: fileDialogLoad_foto
                                    objectName: "foto"
                                    property string path: ""
                                    folder: "."
                                    title: "Choose a file to open"
                                    selectMultiple: false
                                    nameFilters: [ "Image files (*.png *.jpg)", "All files (*)" ]
                                    onAccepted: { console.log("Accepted: " + fileUrl)
                                        fileDialogLoad_foto.path = fileUrl
                                    qmlSignal()
                                    }
                                }
                            MouseArea {
                                anchors.fill: parent
                                onClicked: {
                                    fileDialogLoad_foto.open()                                
                                }
                            }
                        }
      Evgenii Legotckoi
      • 21 жовтня 2017 р. 12:49

      А посмотрите, что будет выдавать qDebug()

      qDebug() << path1;
        Виталий Антипов
        • 21 жовтня 2017 р. 12:52

        "file:///C:/Users/555/Pictures/00GAF13AP001-002.jpg"

          Evgenii Legotckoi
          • 21 жовтня 2017 р. 12:54
          • Відповідь була позначена як рішення.

          удалите file:///

          path1.replace("file:///", "");
          Прежде чем пытаться скопировать файл.
            Виталий Антипов
            • 21 жовтня 2017 р. 12:57

            Получилось! Спасибо огромное!

            path1 =  "C:/Users/555/Pictures/00GAF13AP001-002.jpg"
            true

              Коментарі

              Only authorized users can post comments.
              Please, Log in or Sign up
              AD

              C++ - Тест 004. Указатели, Массивы и Циклы

              • Результат:50бали,
              • Рейтинг балів-4
              m
              • molni99
              • 26 жовтня 2024 р. 11:37

              C++ - Тест 004. Указатели, Массивы и Циклы

              • Результат:80бали,
              • Рейтинг балів4
              m
              • molni99
              • 26 жовтня 2024 р. 11:29

              C++ - Тест 004. Указатели, Массивы и Циклы

              • Результат:20бали,
              • Рейтинг балів-10
              Останні коментарі
              ИМ
              Игорь Максимов22 листопада 2024 р. 22:51
              Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
              Evgenii Legotckoi
              Evgenii Legotckoi01 листопада 2024 р. 00:37
              Django - Урок 064. Як написати розширення для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
              A
              ALO1ZE19 жовтня 2024 р. 18:19
              Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
              ИМ
              Игорь Максимов05 жовтня 2024 р. 17:51
              Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
              d
              dblas505 липня 2024 р. 21:02
              QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
              Тепер обговоріть на форумі
              Evgenii Legotckoi
              Evgenii Legotckoi25 червня 2024 р. 01:11
              добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
              t
              tonypeachey115 листопада 2024 р. 17:04
              google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
              NSProject
              NSProject04 червня 2022 р. 13:49
              Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
              9
              9Anonim25 жовтня 2024 р. 19:10
              Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

              Слідкуйте за нами в соціальних мережах