Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 14 van 14

Onderwerp: alle bestanden uit folder ophalen

  • Vraag is niet opgelost
  1. #1

    alle bestanden uit folder ophalen

    hallo iedereen

    ik zou graag met visual basic alle bestanden uit een folder willen downloaden maar ik weet niet hoe dat moet.
    Code:
    My.Computer.Network.DownloadFile
    werkt in iedergeval niet want dat is alleen voor losse files.

    het zijn +/- 200 bestanden en die wil ik er niet met de hand inzetten

    heeft u een oplossing? top
    maar anders komen we er samen wel uit

    M.V.G.
    michael

  2. #2
    Giga Senior edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Downloaden doe je van het internet naar je PC.
    Waar staan die bestanden en waar moeten ze naar toe?

  3. #3
    Senior Member
    Geregistreerd
    20 augustus 2007
    Locatie
    't Harde
    Afstand tot server
    ±26 km
    Eerst alle files uit de directory ophalen en dan een for each loop er overheen?
    Je kunt ook de copyfolder methode gebruiken
    Hieronder wat voorbeelden in die richting.


    http://excelexperts.com/VBA-Tips-List-Files-In-A-Folder
    http://www.freevbcode.com/ShowCode.asp?ID=1487
    http://forums.codeguru.com/showthrea...rom-web-folder

  4. #4
    Giga Senior mastermindzh's avatar
    Geregistreerd
    10 december 2008
    Locatie
    Oss
    Afstand tot server
    ±64 km
    Dat kan met deze code:
    CPP Code:
    1
    2
    
    Imports System
    Imports System.IO


    Dim di As New DirectoryInfo(" LOCATIE ")

    Dim fileArray As FileInfo() = di.GetFiles()

    Dim ffi As FileInfo
    For Each ffi In fileArray

    DOWNLOAD CODE

    Next ffi
    Laatst aangepast door mastermindzh : 30 juli 2012 om 00:34
    Met vriendelijke groet,
    Rick van Lieshout
    Bezoek ook eens mijn website:http://www.mi-soft.nl

  5. #5
    Quote Origineel gepost door mastermindzh Bekijk Bericht
    Dat kan met deze code:
    CPP Code:
    1
    2
    
    Imports System
    Imports System.IO
    en hoe zou die download code er dan uitzien?
    sorry ik ben best wel nieuw met VB.

  6. #6
    Senior Member
    Geregistreerd
    20 augustus 2007
    Locatie
    't Harde
    Afstand tot server
    ±26 km
    Quote Origineel gepost door michaelvdnet Bekijk Bericht
    en hoe zou die download code er dan uitzien?
    sorry ik ben best wel nieuw met VB.
    Al naar mijn voorbeelden gekeken? Staat behoorlijk wat informatie

    Een google search naar "Visual basic" + "Download files" doet ook wonderen.

  7. #7
    Quote Origineel gepost door grumbkow Bekijk Bericht
    Al naar mijn voorbeelden gekeken? Staat behoorlijk wat informatie

    Een google search naar "Visual basic" + "Download files" doet ook wonderen.
    ik heb even wat gekeken op google en vond dit
    Code:
      My.Computer.FileSystem.CopyDirectory
    maar ik weet niet of dat ook voor over het internet geldt

  8. #8
    Senior Member
    Geregistreerd
    20 augustus 2007
    Locatie
    't Harde
    Afstand tot server
    ±26 km
    Quote Origineel gepost door michaelvdnet Bekijk Bericht
    ik heb even wat gekeken op google en vond dit
    Code:
      My.Computer.FileSystem.CopyDirectory
    maar ik weet niet of dat ook voor over het internet geldt
    Dan google je dat ook,

    http://www.vbdotnetheaven.com/upload...edownload.aspx

  9. #9
    ik heb het soort van gevonden denk ik!
    http://snipplr.com/view/8029/

  10. #10
    Giga Senior mastermindzh's avatar
    Geregistreerd
    10 december 2008
    Locatie
    Oss
    Afstand tot server
    ±64 km
    In dat voorbeeld zet hij de bestandsnamen in een .txt bestand.
    downloaden doet hij ze echte rniet.

    er zijn een aantal manieren om te downloaden en ik zal ze even uitleggen:

    importeer ook deze beide even:
    CPP Code:
    1
    2
    
    Imports System.Net
    Imports System.IO

    Vervolgens zet je onder public class form1 de volgende code:
    CPP Code:
    1
    2
    3
    4
    5
    
    Dim thread As System.Threading.Thread
        Dim thread2 As System.Threading.Thread
        Dim sizeinmbform As String = Nothing
     
        Dim WithEvents WC As New WebClient

    onder het load event (dubbelklik op je form) plaats je hetvolgende:
    CPP Code:
    1
    
    Me.CheckForIllegalCrossThreadCalls = False

    en daarna gaan we naar de 2 manieren

    Manier 1, geen MB status
    Maak een private sub genaamde code aan zoals ik hier beneden doe:

    CPP Code:
    1
    2
    3
    
    Private Sub code()
            WC.DownloadFileAsync(New Uri("http://download.thinkbroadband.com/200MB.zip"), "file1.zip")
        End Sub

    (New Uri("http://download.thinkbroadband.com/200MB.zip"), "file1.zip")
    Rood = download locati
    Groen = nieuwe locatie op pc.

    Zet vervolgens ook een progressbar op je form (om te laten zien hoe ver hij is).

    plak dit onder het woord end sub van de private sub code()
    CPP Code:
    1
    2
    3
    
    Private Sub WC_DownloadProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs) Handles WC.DownloadProgressChanged
            ProgressBar1.Value = e.ProgressPercentage
        End Sub

    Vervolgens voeg je 2 knoppen toe op knop 1 zet je het woord "start" en op 2 "stop".
    Vervolgens voeg je de volgende code voor de knoppen bij:

    CPP Code:
    1
    2
    3
    4
    5
    6
    7
    8
    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            thread = New System.Threading.Thread(AddressOf code)
            thread.Start()
        End Sub
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            WC.CancelAsync()
     
        End Sub

    Dit was manier 1, hierbij zal een multithreaded download worden gestart (programma blijft actief) maar er zal niet weergegeven worden hoeveel MB er al binnen is en hoeveel het totaal is.

    Manier 2, Met MB counter + progressbar

    voor manier 2 maken we allereerst 2 labels aan (bij mij genaamd label3 en label4) die positioneren we met een / ertussen net onder de 2de progressbar:


    dan maken we een private sub code2() toe, dit is de download code die gebruikt zal worden:
    CPP Code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    Dim size2 As Integer
            Dim wr2 As WebRequest
            wr2 = WebRequest.Create("http://download.thinkbroadband.com/200MB.zip")
            Dim webr2 As WebResponse = wr2.GetResponse
            size2 = webr2.ContentLength
            size2 = size2 / 1024
            ProgressBar2.Maximum = size2
     
            Label3.Text = size2 / 1024 & "MB"
     
     
            Dim wc2 As New WebClient
            WC.DownloadFile("http://download.thinkbroadband.com/200MB.zip", "file2.zip")

    Daarna voegen we een timer toe (timer1) en daarvan zetten we de interval op 1,en enabled op true. na een dubbelklik op de timer voeg je deze code toe:
    CPP Code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    Try
                Dim amount As Integer
                If System.IO.File.Exists("file2.zip") Then
                    Dim o As New System.IO.FileInfo("file2.zip")
                    amount = o.Length
                    amount = amount / 1024
                    Dim amount2 As Integer = amount / 1024
                    Label4.Text = amount2 & "MB"
                    ProgressBar2.Value = amount
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try

    daarna doen we de start knop weer programmeren met de volgende code:
    CPP Code:
    1
    2
    3
    
    thread2 = New System.Threading.Thread(AddressOf code2)
     
            thread2.Start()

    Dit is dan het resultaat:


    Het visual basic project is te downloaden op www.mi-soft.nl of via de directe link: http://mi-soft.nl/?attachment_id=719
    Met vriendelijke groet,
    Rick van Lieshout
    Bezoek ook eens mijn website:http://www.mi-soft.nl

  11. #11
    het voorbeeld dat ik gaf downloade wel
    ik heb het zelf al een aantal keer geprobeert en ik ben al aardig op weg

  12. #12
    Giga Senior mastermindzh's avatar
    Geregistreerd
    10 december 2008
    Locatie
    Oss
    Afstand tot server
    ±64 km
    Maar wordt het met jou artikel niet dubbel werk?
    je moet eerst een .txt genereren en die wegschrijven op de harde schijf, daarna lees je van dat bestand om te downloaden?

    dan kan je beter de files uitlezen met een loop, en elk item in die loop downloaden, dan hoef je niet een extra .txt bestand te schrijven / lezen.


    Ook wil ik je nog aanraden het script gevonden op jou pagina aan te passen naar een multithreaded downloader, aangezien het met grote files nu zou vastlopen.


    multithreaded & met loop doe je zo:

    CPP Code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    Imports System.Net
    Imports System.IO
     
     
    Dim thread As System.Threading.Thread
    Dim thread2 As System.Threading.Thread
    Dim sizeinmbform As String = Nothing
    Dim WithEvents WC As New WebClient
     
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.CheckForIllegalCrossThreadCalls = False
    end sub
     
    private sub code()
     
    Dim di As New DirectoryInfo(application.startuppath & "\downloads\")
     
    Dim fileArray As FileInfo() = di.GetFiles()
     
    Dim ffi As FileInfo
    For Each ffi In fileArray
     
     
    DOWNLOAD CODE
     
     
     
    Next ffi
    end sub

    en dan om de code() sub aan te roepen zet je deze code onder een event (of button):

    CPP Code:
    1
    2
    
    thread = New System.Threading.Thread(AddressOf code)
             thread.Start()


    Op die manier zal je programma niet blijven hangen ("programma reageert niet meer") als hij een bestand download dat niet meteen binnen is, het programma zal dan blijven reageren voor de gebruiker.
    Met vriendelijke groet,
    Rick van Lieshout
    Bezoek ook eens mijn website:http://www.mi-soft.nl

  13. #13
    Giga Senior JoZ1's avatar
    Geregistreerd
    17 december 2010
    Locatie
    Nieuwegein
    Afstand tot server
    ±90 km
    Zo hé, Mastermindzh. Jij maakt er wel werk van, hè?




    "Microsoft is not the answer. Microsoft is the question. NO is the answer."- E. Naggum

  14. #14
    Giga Senior mastermindzh's avatar
    Geregistreerd
    10 december 2008
    Locatie
    Oss
    Afstand tot server
    ±64 km
    Klopt, ik ben recent gestopt met vrijwel alle games. Dus ik heb tijd over

    zo werk ik nu ook regelmatig aan de nieuwe website (www.mi-soft.nl)
    Met vriendelijke groet,
    Rick van Lieshout
    Bezoek ook eens mijn website:http://www.mi-soft.nl

Berichtenregels

  • U mag geen nieuwe discussies starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • Umag niet uw berichten bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren
Linkpartners
Aanbiedingen