Pobieranie rozmiaru plików z kilku url

Forum poświęcone językowi C#.

Moderator: xxSlayeRxx

Pobieranie rozmiaru plików z kilku url

Sponsor

Sponsor
 

Pobieranie rozmiaru plików z kilku url

Postprzez IceG » N maja 24, 2015 5:23 pm

Cześć :)
Chciałem napisać sobie aplikację, która ułatwi mi pobieranie plików z jednej ze znanych stron www, niestety zatrzymałem się na pobraniu ich rozmiaru, program podaje mi rozmiar dla góra 2 plików i niestety nie wiem jak to przeskoczyć, jakby ktoś mógł zobaczyć co robię źle to byłoby fajnie. Program w załączniku.

P.S.
Jeżeli umieściłem nie w tym dziale.. to proszę o przeniesienie.

Dziękuję za zainteresowanie, pozdrawiam.
Ostatnio edytowano Wt maja 26, 2015 5:40 pm przez IceG, łącznie edytowano 1 raz
IceG
Member
 
Posty: 74
Dołączył(a): So mar 06, 2010 11:21 pm

Re: Pobieranie rozmiaru plików z kilku url

Postprzez xxSlayeRxx » N maja 24, 2015 8:31 pm

2 uwagi:

1) co to jest? Uzywac textboxa jako zmienna globalna (albo jeszcze gorzej jako smietnik na wszytko)?
uzyj metody przy tych samych operacjach
po co for 0:6?
jesli masz nieokreslona wartosc to robisz liste wartosci i foreach, jesli wiesz ile ma byc (stosunkowo malo) to jakies lepsze nazwy
jeszcze raz uzyj metody np dla update list view

2) czemu .net 3.5?

a odpowiedz na Twoje pytanie: pierwsze dwa pliki wzglednie szybko otwiera client1.OpenRead(zeus1);
Natomiast z 3 jest problem... niestety jest pozna godzina i nie chce mi sie siedziec nad tym... zobacz czy link jest poprawny... ile zajmuje normalnie, przez przegladarke itd...

raczej nie jest to blad po stronie kodu
xxSlayeRxx
Member
 
Posty: 661
Dołączył(a): Pt lip 08, 2011 10:24 pm

Re: Pobieranie rozmiaru plików z kilku url

Postprzez IceG » N maja 24, 2015 10:08 pm

Hej :) już odpowiadam na pytania.
Sprawdziłem i link jest poprawny i poprawne linki też są generowane, zamieniając na sztywno np. link pierwszy z trzecim (wyświetlany w listView) zmienia się automatycznie wartość (rozmiar na poprawny dla tego pliku). Tylko właśnie w listView zawsze ukazane są 2 wyniki i ogólnie nie pobiera rozmiaru dla więcej niż 2, tak jakby zaraz program przestał odpowiadać.

Co do uwag.. wiem, że program jest bardzo chaotyczny, a wręcz "niepoprawny" ale powstawał na zasadzie "ciekawe czy się tak da" do tego jest to któraś próba z kolei podejścia do programu, mam tu na myśli właśnie ten moment w którym się zawiesiłem. Wiem że można to napisać bardziej zwarcie i czytelniej co pewnie uczynię po rozgryzieniu tego "błędu", optymalizacja musi zaczekać, chyba że właśnie w kodzie jest błąd.

W zasadzie mógłbym olać sprawdzanie wszystkich linków i wybrać sobie jeden wybrany i pod niego poprawić kod, dopisać opcję pobierania i po sprawie, ale mimo wszystko wolałbym dowiedzieć się co jest nie tak teraz.

Co do kontrolek tekstowych często je stosuję aby sprawdzić czy to co wyciągam ze strony to konkretnie to o co mi chodzi i owszem często wygląda to jak niezły śmietnik dla kogoś z zewnątrz, ale mi na etapie pisania programu bardzo to pomaga, potem to zamieniam.

Pętla z odliczaniem do 0-6 to wartość (ilość linków), które wyciągam ze źródła strony, ilość jest zmienna, nie zawsze taka sama, ale maksymalnie o ile dobrze pamiętam 6.

Co do NET 3.5 to pozostałość z wyższej wersji środowiska C# w której rozpoczynałem program, spokojnie można zejść do NET 2.0.
IceG
Member
 
Posty: 74
Dołączył(a): So mar 06, 2010 11:21 pm

Re: Pobieranie rozmiaru plików z kilku url

Postprzez Eldier » Śr maja 27, 2015 4:10 pm

A gdzie jest ten załącznik, bo jakoś nie widzę?
Eldier
Member
 
Posty: 41
Dołączył(a): Pt gru 20, 2013 5:34 pm

Re: Pobieranie rozmiaru plików z kilku url

Postprzez IceG » Śr maja 27, 2015 8:19 pm

Eldier napisał(a):A gdzie jest ten załącznik, bo jakoś nie widzę?


Załącznik usunąłem ponieważ udało mi się rozwiązać problem i aplikacja "w początkowej fazie" działa jak powinna. Teraz tylko poprawić kod/optymalizajcę, dodać jeszcze parę funkcji i może sobie exe leżeć na dysku.

Obrazek
http://images.tinypic.pl/i/00669/5rne3drcekcb.png

Dla zainteresowanych umieszczę mój kod pobierania rozmiaru plików:
Kod: Zaznacz cały
                HttpWebRequest req1 = (HttpWebRequest)WebRequest.Create(URL);

                req1.Timeout = 2000;
                req1.Method = "HEAD";

                HttpWebResponse resp1 = (HttpWebResponse)req1.GetResponse();

                Int64 bytes_total1 = Convert.ToInt64(resp1.ContentLength);
                listView1.Items[0].SubItems[1].Text = BytesToString(bytes_total1);
                req1.Abort(); // koniecznie należy dodać tą linijkę, aby zakończyć odczyt, zbyt duża liczba aktywnych odwołań zawiesza aplikację i dlatego mi nie działało.
IceG
Member
 
Posty: 74
Dołączył(a): So mar 06, 2010 11:21 pm

Re: Pobieranie rozmiaru plików z kilku url

Sponsors

Sponsor
 


Powrót do C#

Kto przegląda forum

Użytkownicy przeglądający ten dział: Bing [Bot] i 11 gości

cron