Stahování z FTP + progress bar – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Stahování z FTP + progress bar – Java – Fórum – Programujte.comStahování z FTP + progress bar – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
exim
~ Anonymní uživatel
37 příspěvků
30. 8. 2012   #1
-
0
-

Zdravim mám kod:

 public static boolean download(String file)
   {
      
       String user,pass,host;
       user = "...";
       pass = "..."; 
       host = "...";
       
       FTPClient client = new FTPClient();
       
       try {
            client.connect(host);
            client.login(user, pass);
 

           
            fos = new FileOutputStream(file);
            boolean retrieveFile = client.retrieveFile(file, fos);
            return retrieveFile;

            
            
        } catch (IOException e) {
        } finally {
            try {
                client.disconnect();
            } catch (IOException e) {
            }
        }
       
   
       return false;
   }

 a když ho provedu (začnu stahovat soubor z ftp), tak mam v app ještě grafický progress bar (JProgressBar) a potřebuju aby ukazoval kolik se toho souboru soslo...

Díky za reakce

Nahlásit jako SPAM
IP: 149.255.82.–
Reklama
Reklama
TheOndrap+2
Super člen
30. 8. 2012   #2
-
0
-

Zkušenosti s tím nemám, takže mě neber jako bernou minci a možná se mýlím, ale myslím že bys měl udělat ještě druhé vlákno a v něm kontrolovat přenesená data, ta porovnat s velikostí souboru a podle toho vypsat procenta ( dělat progressBar).

Nahlásit jako SPAM
IP: 213.129.141.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
exim
~ Anonymní uživatel
37 příspěvků
30. 8. 2012   #3
-
0
-

#2 TheOndrap
To mě napadlo, ale když ono se to nejdřív sosá někam do buhví jakýho tempu a ten soubor nevim kde je abych mohl zjištovat jeho velikost

Nahlásit jako SPAM
IP: 149.255.82.–
TheOndrap+2
Super člen
30. 8. 2012   #4
-
0
-

No ledaže bys měl přístup k instanci toho Streamu a nějak z něj mohl zjistit přenesený data ... ukaž kód toho "stahování" .. to se dělá nějakým readem, nebo k tomu stačí ten .retrieveFile a stáhne se to "samo"?

Nahlásit jako SPAM
IP: 213.129.141.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
liborb
~ Redaktor
+18
Guru
30. 8. 2012   #5
-
0
-

Tohle se většinou řeší přes callback. A toto je Java, tak bych hledal nějaký Listener, kde ty informace (po nastavení) o průběhu budeš dostávat.

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 82.145.209.–
zlz
~ Anonymní uživatel
634 příspěvků
30. 8. 2012   #6
-
0
-

   

setCopyStreamListener
Nahlásit jako SPAM
IP: 78.156.159.–
exim
~ Anonymní uživatel
37 příspěvků
30. 8. 2012   #7
-
0
-

zlz: Koukal sem, ale nevim jak to použít... :/ Nedaš mi prosim příklad?

Nahlásit jako SPAM
IP: 149.255.82.–
exim
~ Anonymní uživatel
37 příspěvků
31. 8. 2012   #8
-
0
-

Tak sem stylem pokus-omyl rozeběhnul setCopyStreamListener, ale tím pouze zjistím pouze přenesené byty:

Takže pro lidi kterým se to někdy bude hodit:

FTPClient client = new FTPClient();
client.setCopyStreamListener(createListener()); //vytvoříme listener
 private static CopyStreamListener createListener(){
        return new CopyStreamListener(){
            private long megsTotal = 0;
            @Override
            public void bytesTransferred(CopyStreamEvent event) {
                bytesTransferred(event.getTotalBytesTransferred(), event.getBytesTransferred(), event.getStreamSize());
                
            }

            @Override
            public void bytesTransferred(long totalBytesTransferred,
                    int bytesTransferred, long streamSize) {
                
			//tu potřebuju propočítat stažený / celková velikost/*100
                        // - dá mi to výsledný procenta 0-100 který následně budu cpát do progres baru
                                                            
                }
                
            }
        };
    }

Nicméně se mi nedaří zjistit celková velikost souboru ještě před tím, než to začne sosat? nejlépe bych si to dal do globalní promněný abych si ji mohl brát odkudkoliv...

Díky

Nahlásit jako SPAM
IP: 149.255.82.–
liborb
~ Redaktor
+18
Guru
31. 8. 2012   #9
-
0
-

Tak příkaz na zjištění velikosti přes FTP je SIZE. A když se podívám na tu třídu FTPClient, tak to vypadá, jestli to dobře chápu, že by ses k hodnotě SIZE mohl dostat přes featureValue.

Nahlásit jako SPAM
IP: 78.80.52.–
exim
~ Anonymní uživatel
37 příspěvků
31. 8. 2012   #10
-
0
-

Díky, nakonec sem využil FTPFile třídu, pomocí ní a FTPClient sem si vypsal list souborů ve složce a pomocí cyklu jsem si vypsal vždy název a velikost, pomocí podmínky si vycuc co jsem potřeboval a zapsal is velikost :)) Mužu sem hodit zdroj kdyby nekdo chtel, ale asi by to šlo jednodušeji..

Díky za pomoc

Nahlásit jako SPAM
IP: 149.255.82.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 35 hostů

Podobná vlákna

Progress bar — založil lot

Progress bar (OpenGL) — založil gaben

Progress bar do PHP uploadu — založil Jirka

Jak otočit progress bar — založil Hula

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý