Datei downloaden und in einen anderen Ordner verschieben?

Startseite Foren Deutsches LiveCode-Forum Datei downloaden und in einen anderen Ordner verschieben?

Ansicht von 14 Antwort-Themen
  • Autor
    Beiträge
    • #14525
      JB1002000
      Teilnehmer

        Hallo, ich möchte folgendes realisieren:

        Meine erstellte App soll von meinem FTP-Server selbständig eine LiveCode Datei (Zusatzdatei.livecode) herunterladen, wenn die Datei noch nicht auf dem Handy verfügbar ist oder veraltet ist. Nun habe ich lange herum probiert, komme allerdings nicht zum Ziel. Wie kann ich eine Datei herunterladen und dann an einen beliebigen Pfad verschieben? Vielen Dank im voraus, für eure Hilfe!

      • #14527
        Klaus Major
        Administrator

          Hi JB1002000,

          auf der mobilen Platform haben wir NUR hier Schreibrechte -> specialfolderpath(“documents”)!
          Also solltest Du den Stack auch dort speichern.

          Schau mal im dictionary unter -> ftp
          nach, da gibt es auch einige Beispiele, wie man das benutzt.

          Falls Du nicht weiterkommst, hier wieder fragen.
          Beispiel:

          ...
          put specialfolderpath("documents") & "/zusatzdatei.livecode" into tZielDatei
          ## Prüfen, ob schon vorhanden:
          if there is a file tZielDatei then
            exit to top
          end if
          
          ## Nun der eigentliche Download direkt in die richtige Datei:
           put URL "ftp://DEIN_USERNAME_HIER:DEIN_PWD_HIER@ftp.example.net:2121/zusatzdatei.livecode" into url("binfile:" & tZielDatei)
          ...

          Diese Aktion ist “blocking”, heisst, während LC die Datei lädt, kannst Du nichts anderes machen. Sollte aber kein Problem sien, wenn der Stack nicht allzu groß ist.

          Gruß

          Klaus

        • #14529
          JB1002000
          Teilnehmer

            Vielen, vielen Dank für die super schnelle und hilfreiche Antwort! Ich versuche es dann direkt und Melde mich dann nochmal.

          • #14539
            JB1002000
            Teilnehmer
              
              on mouseUp
                 global Ordner
                 put (specialFolderPath("documents")&"/LiveCode Projektdatenbanken/UpdateApp") into Ordner
                 if there is a folder Ordner then
                    put URL "ftp://backup-server:MEIN_Passwort@backup-server.bplaced.net:2121/App/UpdateApp/1/Zusatzdatei.livecode" into url("binfile:" & Ordner)
                    answer "Datei gespeichert!"
                 else
                    create folder Ordner
                    put URL "ftp://backup-server:MEIN_Passwort@backup-server.bplaced.net:2121/App/UpdateApp/1/Zusatzdatei.livecode" into url("binfile:" & Ordner)
                    answer "Ordner erstellt und Datei gespeichert"
                 end if
              end mouseUp
              

              Der Ordner ist vorhanden und das wird auch erkannt, dann kommt die Meldung “Datei gespeichert”. Allerdings bleibt der Ordner leer.

            • #14541
              Klaus Major
              Administrator

                Hallo JB1002000,

                Du gibst als ZielDATEI einen ORDNER an!

                put (specialFolderPath(“documents”)&”/LiveCode Projektdatenbanken/UpdateApp“) into Ordner

                put URL “ftp://…UpdateApp/1/Zusatzdatei.livecode” into url(“binfile:” & Ordner)

                Das bedeutet, Du erstellt einen Ordner und willst eine Datei mit DEM SELBEN Namen wie der Ordner speichern! Das geht natürlich in die Hose und in der Runtime gibt es keine Fehlermeldung wie in der IDE, also geht das unbemerkt unter.

                Ich hatte gehofft, mein Beispiel sei unmissverständlich:

                put specialfolderpath(“documents”) & “/zusatzdatei.livecode” into tZielDatei

                😎

                Hinweis:
                Ordnung ist ja eine schöne Sache, aber da wir eh nicht in den Ordner auf dem Handy reingucken können, bedarf es eigentlich auch keiner Unterordner im “Documents” Ordner. 🙂

                Gruß

                Klaus

              • #14543
                JB1002000
                Teilnehmer

                  Sorry, das war wirklich dumm, jetzt funktioniert es ordentlich. Ich danke dir für deine Gedult und Hilfe!

                • #14545
                  Klaus Major
                  Administrator

                    Macht dann fünf Mark! 😀

                  • #14580
                    JB1002000
                    Teilnehmer

                      Hallo, ich habe mit dem Code etwas weitergearbeitet und habe folgendes Problem. Es werden zwar tatsächlich Dateien in den Ordner “UpdateApp” geladen, allerdings ohne Inhalt. In der Textdatei ist eine Zahl gespeichert, die sollte ja normalerweise heruntergeladen werden und in dem Ordner “SpeicherPath” gespeichert werden.

                      Hier mein jetziger Code:

                      
                      on mouseUp
                         //Variablen deklaration
                         put (specialFolderPath("documents") & "/UpdateApp") into SpeicherPath
                         put (specialFolderPath("documents") & "/UpdateApp/Zusatzdatei.livecode") into Zusatzdatei
                         put (specialFolderPath("documents") & "/UpdateApp/Version.txt") into DateiVersion
                         
                         //Prüfen ob OrdnerZusatzdaten vorhanden ist
                         if there is a folder SpeicherPath then
                            put URL "ftp://backup-server:MEIN_PASSWORT@backup-server.bplaced.net:2121/App/UpdateApp/Zusatzdaten/Zusatzdatei.livecode" into url("binfile:" & Zusatzdatei)
                            put URL "ftp://backup-server:MEIN_PASSWORT@backup-server.bplaced.net:2121/App/UpdateApp/Zusatzdaten/Version.txt" into url("binfile:" & DateiVersion)
                         else
                            create folder SpeicherPath
                            put URL "ftp://backup-server:MEIN_PASSWORT@backup-server.bplaced.net:2121/App/UpdateApp/Zusatzdaten/Zusatzdatei.livecode" into url("binfile:" & Zusatzdatei)
                            put URL "ftp://backup-server:MEIN_PASSWORT@zE.jX@backup-server.bplaced.net:2121/App/UpdateApp/Zusatzdaten/Version.txt" into url("binfile:" & DateiVersion)
                         end if
                      end mouseUp
                      
                    • #14582
                      Klaus Major
                      Administrator

                        Hi jb1002000,

                        Du kannst Dir etwas Tipparbeit sparen:

                        ...
                        ## Diese Zeile reicht für Dein Anliegen :-)
                        if there is NOT a folder SpeicherPath then
                           create folder SpeicherPath
                        end if
                        put url...
                        put url...
                        ...

                        Hm, backup-server is dann wohl Dein Username, richtig?
                        Sieht alles korrekt aus, Du solltest aber das Ergebnis der Aktionen checken:

                        ...
                        ## Mal vorsichtshalber MIT Klammern probieren!
                        put url("ftp...")
                        ## the result ist nur LEER bei Erfolg:
                        if the result <> EMPTY then
                          answer "Problem:" && the result
                        end if
                        put url("ftp...")
                        if the result <> EMPTY then
                          answer "Problem:" && the result
                        end if
                        ...

                        Bitte hier posten, was in dem Dialog steht, sofern er auftaucht.
                        Vielleicht gibt das Aufschluss darüber, ob und was falsch läuft.

                        Gruß

                        Klaus

                      • #14584
                        JB1002000
                        Teilnehmer

                          Also ich habe den Code wie folgt geändert:

                          
                          on mouseUp
                             //Variablen deklaration
                             put (specialFolderPath("documents") & "/UpdateApp") into SpeicherPath
                             put (specialFolderPath("documents") & "/UpdateApp/Zusatzdatei.livecode") into Zusatzdatei
                             put (specialFolderPath("documents") & "/UpdateApp/Version.txt") into DateiVersion
                             
                             //Prüfen ob OrdnerZusatzdaten vorhanden ist
                             if there is a folder SpeicherPath then
                                put URL ("ftp://backup-server:MEIN_PASSWORT@backup-server.bplaced.net:2121/App/UpdateApp/Zusatzdaten/Zusatzdatei.livecode") into url("binfile:" & Zusatzdatei)
                                if the result <> EMPTY then
                                   answer "Problem:" && the result
                                end if
                                put URL ("ftp://backup-server:MEIN_PASSWORT@backup-server.bplaced.net:2121/App/UpdateApp/Zusatzdaten/Version.txt") into url("binfile:" & DateiVersion)
                                if the result <> EMPTY then
                                   answer "Problem:" && the result
                                end if
                             else
                                create folder SpeicherPath
                                put URL ("ftp://backup-server:MEIN_PASSWORT@backup-server.bplaced.net:2121/App/UpdateApp/Zusatzdaten/Zusatzdatei.livecode") into url("binfile:" & Zusatzdatei)
                                if the result <> EMPTY then
                                   answer "Problem:" && the result
                                end if
                                put URL ("ftp://backup-server:MEIN_PASSWORT@backup-server.bplaced.net:2121/App/UpdateApp/Zusatzdaten/Version.txt") into url("binfile:" & DateiVersion)
                                if the result <> EMPTY then
                                   answer "Problem:" && the result
                                end if
                             end if
                          end mouseUp
                          

                          Ich habe mir die Schreibarbeit erstmal noch nicht vereinfacht, mache ich dann wenn es richtig funktioniert.
                          ich bekomme keine Meldung angezeigt.

                        • #14586
                          Klaus Major
                          Administrator

                            Mit einem FTP Client klappt das sicher ohne Probleme, oder?
                            Hm, dann habe ich leider keine zündende Idee mehr im moment, sorry…

                            Zur Sicherheit:
                            INTERNET etc. hast du aber angeklickt bei ANDROID für die Android Standalone?
                            Und da der Standalone Builder manchmal Probleme hat, die richtigen Libs etc. automatisch hinzuzufügen, bitte mal “Select inclusions for the standalone application” anklicken und bei INCLUSIONS die INTERNET Library, ziemlich weit unten, manuell anklicken.

                          • #14588
                            JB1002000
                            Teilnehmer

                              Hm, ich bin auch am verzweifeln. Schade das es daran scheitert. Ich habe es bisher auf Windows getestet.

                            • #14590
                              Klaus Major
                              Administrator

                                Wenn Du alles ohne Erfolg probiert hast, wie ich oben beschreiben habe, versuche es mal mit -> liburldownloadtofile

                              • #14592
                                JB1002000
                                Teilnehmer

                                  Alles klar, da muss ich mich errstmal einarbeiten und schauen wie das geht, dauert einen Moment…

                                • #14782
                                  JB1002000
                                  Teilnehmer

                                    Da leider nichts zum Erfolg führte, stelle ich die Arbeiten an dieser Stelle vorerst ein. Danke für die Hilfe. 🙂

                                Ansicht von 14 Antwort-Themen
                                • Du musst angemeldet sein, um auf dieses Thema antworten zu können.