Avatar billede joemoz Nybegynder
07. december 2009 - 18:51 Der er 7 kommentarer og
2 løsninger

FTP uden ftpwebrequest

Jeg er ved at lave et program der løbende skal hente filer fra en FTP-server, men af en eller anden grund virker det ikke med ftpwebrequest-metoden til den server - den bliver ved med at meddele fejl 550, at der ikke er noget indhold når jeg prøver at lave en liste over indholdet af mappen (syntaksen virker på en anden FTP-server, og jeg kan godt connecte til den pågældende server med et almindeligt FTP-program).

Kan nogen hjælpe med en alternativ metode til at tilgå en FTP-server?

den nuværende kode er:

Imports System
Imports System.Net
Imports System.IO
Imports System.Net.FtpWebRequest
Imports System.Net.FtpWebResponse

Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Dim fwr As FtpWebRequest = FtpWebRequest.Create("ftp://10.10.10.10/MAPPE1/MAPPE2")
fwr.Credentials = New NetworkCredential("BRUGERNAVN", "PASSWORD")
        fwr.Method = "LIST"
        Dim sr As New StreamReader(fwr.GetResponse().GetResponseStream())
        Dim str As String = sr.ReadLine()
        While Not str Is Nothing
            Console.WriteLine(str)
            MsgBox(str)
            str = sr.ReadLine()
end while

        sr.Close()
        sr = Nothing
        fwr = Nothing
    End Sub
End Class
Avatar billede arne_v Ekspert
09. december 2009 - 02:28 #1
Er det en public FTP server som vi kan prøve med?

FtpWebRequest har nogle forventninger til FTP server som ikke altid er opfyldt med mindre gængse FTP servere.

Jeg har en alternativ FTP implementering liggende på hylden som vi kunne prøve at teste med.
Avatar billede joemoz Nybegynder
09. december 2009 - 11:05 #2
Den er desværre ikke offentligt tilgængelig - kræver VPN-forbindelse, men kunne du sende koden så jeg selv kan teste den?

Jeg kunne også godt tænke mig at kunne sende direkte kommandoer via ftpwebrequest, men man kan tilsyneladende kun bruge dem der direkte er implementeret, og af en eller anden grund forstår FTP-serveren ikke 'LIST', selvom der står i dokumentationen at den skulle kunne.
Avatar billede arne_v Ekspert
09. december 2009 - 14:36 #3
Koden er her:
  http://www.vajhoej.dk/arne/eksperten/div_2007_04/xftp.cs

Slet Main. Byg som class library. Saet ref til det fra dit VB.NET projekt. Vaelg om du vil bruge FtpConnection direkte eller vil bruge XftpWebRequest. Hvis noget driller kan du saette debug ind diverse steder.
Avatar billede joemoz Nybegynder
11. december 2009 - 12:56 #4
Tak, men jeg får en hel række af fejl når jeg prøver at sætte det ind som class library, herunder en række 'syntax error'. Skulle det fungere i VB2008 Express?
Avatar billede arne_v Ekspert
11. december 2009 - 15:28 #5
Det er C#, saa det skal bygges som C# class library - og saa bruges fra VB.NET !
Avatar billede arne_v Ekspert
12. december 2009 - 02:54 #6
Du kan evt. bare builde den command line og så ref'e den, hvis du kun har VB.NET Express installeret.

Eller jeg kunne builde den for dig.
Avatar billede joemoz Nybegynder
29. december 2009 - 17:34 #7
Jeg har fået det til at virke ved at bruge chilkat FTP - super simpelt og hurtigt. Du må dog gerne få point for indsatsen - send et svar.
Avatar billede arne_v Ekspert
29. december 2009 - 18:43 #8
svar

jeg synes dog at du selv skulle beholde nogen af point'ene
Avatar billede joemoz Nybegynder
29. december 2009 - 18:51 #9
OK, så beholder jeg halvdelen selv.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester