Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QFtp list()
Qt 6.12 LTS is out! See what's new in the release blog

QFtp list()

Scheduled Pinned Locked Moved Unsolved General and Desktop
30 Posts 3 Posters 30.8k Views 2 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 magguz

    @mrjj

    Sorry, but I'm a beginner in C++/Qt. How I must handle the unique identifier that is returned? And what I must specify for "const QString" as the first parameter of QFtp::list?

    mrjjM Offline
    mrjjM Offline
    mrjj
    Lifetime Qt Champion
    wrote on last edited by
    #13

    @magguz
    Hi
    Dont be sorry. just practice reading docs. Its a must do for becoming PRO. :)
    It was not meant as lifted finger. just that u really need it :)

    The ID is just used to know what command a response belongs to.
    when command is done, it calls
    void QFtp::commandFinished(int id, bool error)

    so here the ID will be the same as the list() returns.

    so if you have issued multiple commands, that way you know what is what.

    The "const QString" is the name of a directory. but if you leave it empty, docs says it just mean
    "root"/top folder then. So if you dont need to only process a certain subfolder, i think leaving it empty is fine.

    M 1 Reply Last reply
    0
    • mrjjM mrjj

      @magguz
      Hi
      Dont be sorry. just practice reading docs. Its a must do for becoming PRO. :)
      It was not meant as lifted finger. just that u really need it :)

      The ID is just used to know what command a response belongs to.
      when command is done, it calls
      void QFtp::commandFinished(int id, bool error)

      so here the ID will be the same as the list() returns.

      so if you have issued multiple commands, that way you know what is what.

      The "const QString" is the name of a directory. but if you leave it empty, docs says it just mean
      "root"/top folder then. So if you dont need to only process a certain subfolder, i think leaving it empty is fine.

      M Offline
      M Offline
      magguz
      wrote on last edited by
      #14

      @mrjj

      And how I can get the content of a directory on a FTP-server as a string?

      mrjjM 1 Reply Last reply
      0
      • M magguz

        @mrjj

        And how I can get the content of a directory on a FTP-server as a string?

        mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by
        #15

        @magguz
        for each file it will send event listInfo() signal so you need to connect to that and build a string yourself if you want
        that.
        void QFtp::listInfo(const QUrlInfo & i)

        so you get a QUrlInfo pr file.
        you can ask for string with
        QString QUrlInfo::name() const

        "The listInfo() signal is emitted for each directory entry found."

        M 1 Reply Last reply
        0
        • mrjjM mrjj

          @magguz
          for each file it will send event listInfo() signal so you need to connect to that and build a string yourself if you want
          that.
          void QFtp::listInfo(const QUrlInfo & i)

          so you get a QUrlInfo pr file.
          you can ask for string with
          QString QUrlInfo::name() const

          "The listInfo() signal is emitted for each directory entry found."

          M Offline
          M Offline
          magguz
          wrote on last edited by
          #16

          @mrjj

          I have now created a second connect method and a function "addToList()" like this:

          connect(m_ftp, SIGNAL(listInfo()), this, SLOT(addToList()));
          

          and now?

          mrjjM 1 Reply Last reply
          0
          • M magguz

            @mrjj

            I have now created a second connect method and a function "addToList()" like this:

            connect(m_ftp, SIGNAL(listInfo()), this, SLOT(addToList()));
            

            and now?

            mrjjM Offline
            mrjjM Offline
            mrjj
            Lifetime Qt Champion
            wrote on last edited by
            #17

            @magguz
            HGi
            its :listInfo(const QUrlInfo & i)
            so syntax is not correct

            connect(m_ftp, SIGNAL(listInfo(const QUrlInfo &), this, SLOT(addToList(const QUrlInfo &));
            and change addToList so it takes that parameter.
            For each file it calls it
            and you can build your list or what you need.

            M 1 Reply Last reply
            0
            • mrjjM mrjj

              @magguz
              HGi
              its :listInfo(const QUrlInfo & i)
              so syntax is not correct

              connect(m_ftp, SIGNAL(listInfo(const QUrlInfo &), this, SLOT(addToList(const QUrlInfo &));
              and change addToList so it takes that parameter.
              For each file it calls it
              and you can build your list or what you need.

              M Offline
              M Offline
              magguz
              wrote on last edited by
              #18

              @mrjj said in QFtp list():

              @magguz

              and change addToList so it takes that parameter.

              how I can take the parameter into the addToList function?

              mrjjM 1 Reply Last reply
              0
              • M magguz

                @mrjj said in QFtp list():

                @magguz

                and change addToList so it takes that parameter.

                how I can take the parameter into the addToList function?

                mrjjM Offline
                mrjjM Offline
                mrjj
                Lifetime Qt Champion
                wrote on last edited by
                #19

                @magguz
                just change the addToList so it the real slot have a variable name.
                (not in the connect. they are always without names)

                void addToList(const QUrlInfo & file);

                M 1 Reply Last reply
                0
                • mrjjM mrjj

                  @magguz
                  just change the addToList so it the real slot have a variable name.
                  (not in the connect. they are always without names)

                  void addToList(const QUrlInfo & file);

                  M Offline
                  M Offline
                  magguz
                  wrote on last edited by
                  #20

                  @mrjj

                  I changed the addToList() to addToList(const QUrlInfo & file)
                  Now I get an object named "file" for every directory entry, right?

                  mrjjM 1 Reply Last reply
                  0
                  • M magguz

                    @mrjj

                    I changed the addToList() to addToList(const QUrlInfo & file)
                    Now I get an object named "file" for every directory entry, right?

                    mrjjM Offline
                    mrjjM Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on last edited by mrjj
                    #21

                    @magguz
                    yes you get an URL object for each file
                    and the (QUrlInfo) file has a function called
                    name() that returns a QString.

                    http://doc.qt.io/archives/qt-4.8/qurlinfo.html

                    M 1 Reply Last reply
                    0
                    • mrjjM mrjj

                      @magguz
                      yes you get an URL object for each file
                      and the (QUrlInfo) file has a function called
                      name() that returns a QString.

                      http://doc.qt.io/archives/qt-4.8/qurlinfo.html

                      M Offline
                      M Offline
                      magguz
                      wrote on last edited by
                      #22

                      @mrjj

                      now I want to append the strings to a textEdit like this:

                      ui->textEdit->append(file.name());
                      

                      but it doesn't work

                      mrjjM 1 Reply Last reply
                      0
                      • M magguz

                        @mrjj

                        now I want to append the strings to a textEdit like this:

                        ui->textEdit->append(file.name());
                        

                        but it doesn't work

                        mrjjM Offline
                        mrjjM Offline
                        mrjj
                        Lifetime Qt Champion
                        wrote on last edited by
                        #23

                        @magguz
                        in what way "doesn't work" ?
                        What does it append?
                        is the addToList called ?

                        M 1 Reply Last reply
                        0
                        • mrjjM mrjj

                          @magguz
                          in what way "doesn't work" ?
                          What does it append?
                          is the addToList called ?

                          M Offline
                          M Offline
                          magguz
                          wrote on last edited by
                          #24

                          @mrjj said in QFtp list():

                          @magguz
                          in what way "doesn't work" ?
                          What does it append?
                          is the addToList called ?

                          no it seems that addToList is not called. It appends nothing.

                          mrjjM 1 Reply Last reply
                          0
                          • M magguz

                            @mrjj said in QFtp list():

                            @magguz
                            in what way "doesn't work" ?
                            What does it append?
                            is the addToList called ?

                            no it seems that addToList is not called. It appends nothing.

                            mrjjM Offline
                            mrjjM Offline
                            mrjj
                            Lifetime Qt Champion
                            wrote on last edited by
                            #25

                            @magguz
                            well check all your connects like
                            qDebug() << "status:" << connect(xxxx); // xxxx being what u have
                            and see they return true.
                            also test that it does connect to the server. check errors and such.

                            M 1 Reply Last reply
                            1
                            • mrjjM mrjj

                              @magguz
                              well check all your connects like
                              qDebug() << "status:" << connect(xxxx); // xxxx being what u have
                              and see they return true.
                              also test that it does connect to the server. check errors and such.

                              M Offline
                              M Offline
                              magguz
                              wrote on last edited by
                              #26

                              @mrjj

                              I found what was wrong. I changed

                              ftp->login("","");
                              

                              in

                              ftp->login();
                              

                              and it works. Thanks for your help!

                              1 Reply Last reply
                              1
                              • M Offline
                                M Offline
                                magguz
                                wrote on last edited by
                                #27

                                There is still one thing: In the TextEdit he lists all entries sixteen times

                                mrjjM 1 Reply Last reply
                                0
                                • M magguz

                                  There is still one thing: In the TextEdit he lists all entries sixteen times

                                  mrjjM Offline
                                  mrjjM Offline
                                  mrjj
                                  Lifetime Qt Champion
                                  wrote on last edited by
                                  #28

                                  @magguz
                                  Hi
                                  well
                                  what does file.name() contains ?
                                  in
                                  ui->textEdit->append(file.name());

                                  I cant guess , please debug it using the debugger so you can see what happens.

                                  M 1 Reply Last reply
                                  1
                                  • mrjjM mrjj

                                    @magguz
                                    Hi
                                    well
                                    what does file.name() contains ?
                                    in
                                    ui->textEdit->append(file.name());

                                    I cant guess , please debug it using the debugger so you can see what happens.

                                    M Offline
                                    M Offline
                                    magguz
                                    wrote on last edited by
                                    #29

                                    @mrjj

                                    I changed the connect statements like this:

                                    connect(ftp, SIGNAL(listInfo(const QUrlInfo &)), this, SLOT(addToList(const QUrlInfo &)), Qt::UniqueConnection);
                                    

                                    I added only Qt::UniqueConnection as parameter. Now everything is fine :-)

                                    mrjjM 1 Reply Last reply
                                    1
                                    • M magguz

                                      @mrjj

                                      I changed the connect statements like this:

                                      connect(ftp, SIGNAL(listInfo(const QUrlInfo &)), this, SLOT(addToList(const QUrlInfo &)), Qt::UniqueConnection);
                                      

                                      I added only Qt::UniqueConnection as parameter. Now everything is fine :-)

                                      mrjjM Offline
                                      mrjjM Offline
                                      mrjj
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #30

                                      @magguz
                                      Ahh, you might have added the connect many times :)
                                      well UniqueConnection solves also :)

                                      1 Reply Last reply
                                      0

                                      • Login

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