02. februar 2007 - 08:08Der er
17 kommentarer og 1 løsning
Kopier filer fra Internettet direkte ned på Computeren.
Jeg sidder med programmet Visual Basic 2005 Express Edition.
Jeg har nogen filer jeg gerne vil have at nogen partnere til vores firma kan downloade ned til deres Computer. Og de skal ligges i et bestemt bibliotek på C drevet.
Vi snakker om ca. 200 filer, der til sammen fylder ca. 30 MB når de IKKE er pakket ned.
Pakker jeg dem ned i en Zip-fil fylder de kun 8MB.
Meningen er at de skal downloade og kører et EXE program, der går ud på nettet og henter de filer der skal bruges.
Det ville være smart hvis den kan tjekke om der er nyere filer på nettet end lokalt på maskinen.
Jeg har et FTP sted som jeg kan bruge, men også et Webhotel, så det er ligemget hvorfra den henter det.
lille eksempel, med webrequest og webresponse, kan du få filen fra nettet som en stream, så skal du bare gemme din stream. :-)
Regner med at du kan gemme streamen selv, ellers siger du bare til
Dim imageUri As New System.Uri(TextBox9.Text) Try Dim req As WebRequest = WebRequest.Create(imageUri) Dim resp As WebResponse = req.GetResponse() Dim stream as Stream = resp.GetResponseStream()) Catch ex As Exception
Hvis du er i tvivl om noget i dette eksempel, så bare spørg løs
Dim imageUri As New System.Uri(TextBox9.Text) Try 'kald op til serveren Dim req As WebRequest = WebRequest.Create(imageUri) 'hent serverens svar, (som er filen) Dim resp As WebResponse = req.GetResponse() 'slet den midlertidige fil File.Delete("c:\fil.temp") 'streams Dim fileStream As New FileStream("c:\fil.temp", FileMode.CreateNew) Dim binaryWriter As New BinaryWriter(fileStream) Dim stream As Stream = resp.GetResponseStream()
'hent alle bytesne der er i streamen Dim arrayList As New ArrayList Dim aByte As Byte = stream.ReadByte() While aByte > -1 Try arrayList.Add(aByte) aByte = stream.ReadByte() Catch ex As Exception Exit While End Try End While
'Skriv bytesne til filen Dim bytes() As Byte = CType(arrayList.ToArray(GetType(Byte)), Byte()) binaryWriter.Write(bytes, 0, bytes.Length) binaryWriter.Close() 'PictureBox1.Image = Bitmap.FromStream(resp.GetResponseStream()) Catch ex As Exception Label4.Text = ex.Message End Try
Når jeg klipper/klister det ind i mit Projekt, kommer den med 7Errors
Type 'WebRequest' is not defined Type 'WebResponse' is not defined Type 'File' is not defined Type 'FileStream' is not defined Type 'BinaryWriter' is not defined Type 'Strwam' is not defined
umiddelbart tror jeg ikke at der findes noget unzip værktøj i .NET biblioteket, men du kan jo bygge en selvudpakkende zip fil, som du så kan eksekvere, da det så er blevet til en exe fil.
Det med en nyere version på nettet kan du klare ved at ligge en versions tekst fil, samme sted, og så hente den først, og se om du har sat en nyere version i denne fil.
for UNZIP i .NET kan man enten hente #ZipLib eller udnytte J# supporten og bruge java.util.zip
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.