Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Name of a file
Qt 6.11 is out! See what's new in the release blog

Name of a file

Scheduled Pinned Locked Moved Solved General and Desktop
17 Posts 4 Posters 1.7k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    mchinand
    wrote on last edited by mchinand
    #7

    In addition to what @JonB wrote, for file sorting purposes, I would suggest reversing the date to be specified as "yyyy-MM-dd" and also to zero-pad your counter variable. The number of zeros to pad (see QString's arg docs) with will depend on how many images you expect to collect in a day (alternatively you could use the time from the QDateTime object). This will make your counter string have 5 characters using '0' to fill in characters that are not used for the number (e.g., '00001'):

    QString("frontcamera_%1_%2").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd")).arg(sequenceNumber, 5, 10, QChar('0'))

    J 1 Reply Last reply
    1
    • M mchinand

      In addition to what @JonB wrote, for file sorting purposes, I would suggest reversing the date to be specified as "yyyy-MM-dd" and also to zero-pad your counter variable. The number of zeros to pad (see QString's arg docs) with will depend on how many images you expect to collect in a day (alternatively you could use the time from the QDateTime object). This will make your counter string have 5 characters using '0' to fill in characters that are not used for the number (e.g., '00001'):

      QString("frontcamera_%1_%2").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd")).arg(sequenceNumber, 5, 10, QChar('0'))

      J Offline
      J Offline
      jackfr
      wrote on last edited by
      #8

      @mchinand @JonB how can i add the path please i tried this but it didn't work
      QString filenamerecord_CA= QString("frontcamera_%1_%2").arg(QDateTime::currentDateTime().toString("dd-MM-yyyy")).arg(compteur_rec).arg(dossier);

      jsulmJ JonBJ 2 Replies Last reply
      0
      • J jackfr

        @mchinand @JonB how can i add the path please i tried this but it didn't work
        QString filenamerecord_CA= QString("frontcamera_%1_%2").arg(QDateTime::currentDateTime().toString("dd-MM-yyyy")).arg(compteur_rec).arg(dossier);

        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by
        #9

        @jackfr You have two % in your string (%1 and %2), but three arg() - why? If you want to put 3 substrings you need also %3.
        And if you say "didn't work" please also say what exactly sin't working (what you expect vs, what you get).

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        J 1 Reply Last reply
        2
        • jsulmJ jsulm

          @jackfr You have two % in your string (%1 and %2), but three arg() - why? If you want to put 3 substrings you need also %3.
          And if you say "didn't work" please also say what exactly sin't working (what you expect vs, what you get).

          J Offline
          J Offline
          jackfr
          wrote on last edited by
          #10

          @jsulm thank you for your reply
          error : QString::arg: Argument missing: 12-05-2022, /home/pi/Desktop/Mission_12-05-2022
          code :
          QString filenamerecord= QString("frontcamera_%1_%2_%3").arg(QDateTime::currentDateTime().toString("dd-MM-yyyy").arg(dossier)).arg(compteur_rec);

          JonBJ jsulmJ 3 Replies Last reply
          0
          • J jackfr

            @mchinand @JonB how can i add the path please i tried this but it didn't work
            QString filenamerecord_CA= QString("frontcamera_%1_%2").arg(QDateTime::currentDateTime().toString("dd-MM-yyyy")).arg(compteur_rec).arg(dossier);

            JonBJ Offline
            JonBJ Offline
            JonB
            wrote on last edited by
            #11

            @jackfr said in Name of a file:

            QString filenamerecord_CA= QString("frontcamera_%1_%2").arg(QDateTime::currentDateTime().toString("dd-MM-yyyy")).arg(compteur_rec).arg(dossier);

            I asked you to read the docs for QString QString::arg(), as well as showing you a working example for your original question. I do not think you would have written this if you had taken the time to do so. Please do a bit of reading yourself before just randomly trying things which don't work and then asking here for others to sort it out for you.

            1 Reply Last reply
            1
            • J jackfr

              @jsulm thank you for your reply
              error : QString::arg: Argument missing: 12-05-2022, /home/pi/Desktop/Mission_12-05-2022
              code :
              QString filenamerecord= QString("frontcamera_%1_%2_%3").arg(QDateTime::currentDateTime().toString("dd-MM-yyyy").arg(dossier)).arg(compteur_rec);

              JonBJ Offline
              JonBJ Offline
              JonB
              wrote on last edited by
              #12

              @jackfr said in Name of a file:

              QString filenamerecord= QString("frontcamera_%1_%2_%3").arg(QDateTime::currentDateTime().toString("dd-MM-yyyy").arg(dossier)).arg(compteur_rec);

              FGS, did you even look at where your own )s are before posting this?

              1 Reply Last reply
              1
              • J jackfr

                @jsulm thank you for your reply
                error : QString::arg: Argument missing: 12-05-2022, /home/pi/Desktop/Mission_12-05-2022
                code :
                QString filenamerecord= QString("frontcamera_%1_%2_%3").arg(QDateTime::currentDateTime().toString("dd-MM-yyyy").arg(dossier)).arg(compteur_rec);

                jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #13

                @jackfr said in Name of a file:

                QString filenamerecord= QString("frontcamera_%1_%2_%3").arg(QDateTime::currentDateTime().toString("dd-MM-yyyy").arg(dossier)).arg(compteur_rec);

                Please do what @JonB suggested: read documentation and try to understand what you are doing.
                Here how it should look like:

                QString filenamerecord= QString("frontcamera_%1_%2_%3").arg(QDateTime::currentDateTime().toString("dd-MM-yyyy")).arg(dossier).arg(compteur_rec);
                

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                0
                • J jackfr

                  @jsulm thank you for your reply
                  error : QString::arg: Argument missing: 12-05-2022, /home/pi/Desktop/Mission_12-05-2022
                  code :
                  QString filenamerecord= QString("frontcamera_%1_%2_%3").arg(QDateTime::currentDateTime().toString("dd-MM-yyyy").arg(dossier)).arg(compteur_rec);

                  JonBJ Offline
                  JonBJ Offline
                  JonB
                  wrote on last edited by JonB
                  #14

                  @jackfr
                  Do yourself one favour: when a line gets as long as this and hard to read, factor out the

                  QString date = QDateTime::currentDateTime().toString("dd-MM-yyyy");
                  

                  onto a line above your line and just use date in your line. It makes it easier to read, more manageable, less prone to parenthesis-errors.

                  J 1 Reply Last reply
                  0
                  • JonBJ JonB

                    @jackfr
                    Do yourself one favour: when a line gets as long as this and hard to read, factor out the

                    QString date = QDateTime::currentDateTime().toString("dd-MM-yyyy");
                    

                    onto a line above your line and just use date in your line. It makes it easier to read, more manageable, less prone to parenthesis-errors.

                    J Offline
                    J Offline
                    jackfr
                    wrote on last edited by jackfr
                    #15

                    @JonB @jsulm
                    thank you for your answers in fact I read the documentation well and I made this code the problem is that I would like the file to be saved in the folder"dossier"
                    but i found the file is save in desktop with name "Mission_13-05-2022 Camera_Avant 2"
                    and not Camera_Avant 2 in the folder "dossier "
                    the code :

                    compteur_rec =compteur_rec +1;
                    QString s = QString::number(compteur_rec);
                    QString nom_fichier= QString(s);
                    QString nom_fichier1= QString("Camera_Avant");
                    QString dossier = QDateTime::currentDateTime().toString(QString("'%1/Mission_'dd-MM-yyyy'").arg("/home/pi/Desktop"));
                    QDir().mkdir(dossier);//creation du dossier
                    QString filenamerecord=QString("%1 %2").arg(nom_fichier1).arg(nom_fichier);
                    QString filenamerecord_CA=QString("%1 %2").arg(filenamerecord).arg(dossier);

                    J JonBJ 2 Replies Last reply
                    0
                    • J jackfr

                      @JonB @jsulm
                      thank you for your answers in fact I read the documentation well and I made this code the problem is that I would like the file to be saved in the folder"dossier"
                      but i found the file is save in desktop with name "Mission_13-05-2022 Camera_Avant 2"
                      and not Camera_Avant 2 in the folder "dossier "
                      the code :

                      compteur_rec =compteur_rec +1;
                      QString s = QString::number(compteur_rec);
                      QString nom_fichier= QString(s);
                      QString nom_fichier1= QString("Camera_Avant");
                      QString dossier = QDateTime::currentDateTime().toString(QString("'%1/Mission_'dd-MM-yyyy'").arg("/home/pi/Desktop"));
                      QDir().mkdir(dossier);//creation du dossier
                      QString filenamerecord=QString("%1 %2").arg(nom_fichier1).arg(nom_fichier);
                      QString filenamerecord_CA=QString("%1 %2").arg(filenamerecord).arg(dossier);

                      J Offline
                      J Offline
                      jackfr
                      wrote on last edited by
                      #16

                      @jackfr solution : QString filenamerecord_CA= QString("%1/Camera_Avant %2").arg(dossier).arg(nom_fichier);

                      1 Reply Last reply
                      0
                      • J jackfr

                        @JonB @jsulm
                        thank you for your answers in fact I read the documentation well and I made this code the problem is that I would like the file to be saved in the folder"dossier"
                        but i found the file is save in desktop with name "Mission_13-05-2022 Camera_Avant 2"
                        and not Camera_Avant 2 in the folder "dossier "
                        the code :

                        compteur_rec =compteur_rec +1;
                        QString s = QString::number(compteur_rec);
                        QString nom_fichier= QString(s);
                        QString nom_fichier1= QString("Camera_Avant");
                        QString dossier = QDateTime::currentDateTime().toString(QString("'%1/Mission_'dd-MM-yyyy'").arg("/home/pi/Desktop"));
                        QDir().mkdir(dossier);//creation du dossier
                        QString filenamerecord=QString("%1 %2").arg(nom_fichier1).arg(nom_fichier);
                        QString filenamerecord_CA=QString("%1 %2").arg(filenamerecord).arg(dossier);

                        JonBJ Offline
                        JonBJ Offline
                        JonB
                        wrote on last edited by
                        #17

                        @jackfr said in Name of a file:

                        QString dossier = QDateTime::currentDateTime().toString(QString("'%1/Mission_'dd-MM-yyyy'").arg("/home/pi/Desktop"));

                        This is quite wrong and makes no sense, as I previously stated in an earlier reply when you used it. Did you read that reply? Think about/look up in the docs what QDateTime::toString() accepts as a format string....

                        1 Reply Last reply
                        1

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved