Михаиллл
МихаилллШілде 28, 2019, 11:42 Т.Ж.

Как в Qt сохранить файл в папку загрузок в Android

Добрый день.
Как в Qt сохранить файл в папку загрузок в Android.
В Windows нормально сохраняет.
Пробовал сохранять в эти папки, но не чего не выходит

    downloadFolderAddress = "/storage/emulated/0/Download/";
    downloadFolderAddress = "/storage/sdcard0/download/";
Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

8
Михаиллл
  • Шілде 28, 2019, 2:21 Т.Қ.
  • (өңделген)

Так нашел папку загрузок, но все равно не могу в нее записать.

QStandardPaths::standardLocations(QStandardPaths::DownloadLocation)

Останавливается работа перед открытие файла после

QFile *file = new QFile(downloadFolderAddress + nameFile);
    Evgenii Legotckoi
    • Шілде 29, 2019, 3:14 Т.Ж.

    Добрый день!

    Попробуйте так

    QFile file(saveFileName);
    if (!file.open(QIODevice::WriteOnly))
    {
        return;
    }
    
    // Запись в файл
    
    file.close();  
    

    Также, я бы убедился, что вот это возвращает правильный путь к файлу downloadFolderAddress + nameFile

    Вполне возможно, что вам там ещё слеш нужен

    downloadFolderAddress + "/" + nameFile
    
      Михаиллл
      • Шілде 29, 2019, 3:48 Т.Ж.
      • Жауап шешім ретінде белгіленді.

      Если такое делать, то работает

      bool requestAndroidPermissions(){
      //Request requiered permissions at runtime
      
      const QVector<QString> permissions({
                                          "android.permission.WRITE_EXTERNAL_STORAGE",
                                          "android.permission.READ_EXTERNAL_STORAGE"});
      
      for(const QString &permission : permissions){
          auto result = QtAndroid::checkPermission(permission);
          if(result == QtAndroid::PermissionResult::Denied){
              auto resultHash = QtAndroid::requestPermissionsSync(QStringList({permission}));
              if(resultHash[permission] == QtAndroid::PermissionResult::Denied)
                  return false;
          }
      }
      
      return true;
      }
      
        Михаиллл
        • Шілде 29, 2019, 3:49 Т.Ж.

        Нужно перед каждой записью эту делать.

          Evgenii Legotckoi
          • Шілде 29, 2019, 3:50 Т.Ж.

          Понятно, то есть всё упёрлось в права доступа. Раньше такой проблемы не было.

            Михаиллл
            • Шілде 29, 2019, 3:53 Т.Ж.

            Да, странные трудности. И ведь в манифесте я это добавил

              D
              • Шілде 8, 2020, 7:09 Т.Ж.

              можете подсказать куда прописать этот код. У меня такая же проблема, нужно создавать файлы в папке зарузок

                Михаиллл
                • Шілде 8, 2020, 8:52 Т.Ж.

                Вызывайте эту функцию или в самом начале, или когда нужно сохранять файлы. Она дает права доступа для записи.

                  Пікірлер

                  Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
                  Кіріңіз немесе Тіркеліңіз
                  OI
                  • Ora Iro
                  • Жел. 24, 2024, 6:38 Т.Ж.

                  C++ - Тест 001. Первая программа и типы данных

                  • Нәтиже:40ұпай,
                  • Бағалау ұпайлары-8
                  AD

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

                  • Нәтиже:50ұпай,
                  • Бағалау ұпайлары-4
                  m
                  • molni99
                  • Қаз. 26, 2024, 1:37 Т.Ж.

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

                  • Нәтиже:80ұпай,
                  • Бағалау ұпайлары4
                  Соңғы пікірлер
                  ИМ
                  Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
                  Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                  Evgenii Legotckoi
                  Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
                  Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                  A
                  ALO1ZEҚаз. 19, 2024, 8:19 Т.Ж.
                  Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                  ИМ
                  Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
                  Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                  d
                  dblas5Шілде 5, 2024, 11:02 Т.Ж.
                  QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                  Енді форумда талқылаңыз
                  Evgenii Legotckoi
                  Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
                  добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                  t
                  tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
                  google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                  NSProject
                  NSProjectМаусым 4, 2022, 3:49 Т.Ж.
                  Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
                  9
                  9AnonimҚаз. 25, 2024, 9:10 Т.Ж.
                  Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

                  Бізді әлеуметтік желілерде бақылаңыз