|
| Autor |
Nachricht |
winfreak Newbie

Anmeldedatum: 19.09.2008 Beiträge: 3
|
FTP Programm in Visual Basic .NET... Wie?
Verfasst am: 20.09.2008, 17:30 |
|
|
Hallo,
Ich würde gerne für einen Filehoster ein FTP Programm schreiben. Nun weiß ich nicht genau wie ich das anstellen soll, es soll eine Window Anwendung und keine Konsolen Anwendung werden. Ich hab das so geplant:
Man hat eine Form, in der der Login ist, dann, wenn man auf Login klickt, wird eine Verbindung zum fest vorgelegten FTP Server mit angegebenem Benutzernamen und PW hergestellt. Wenn der Anmeldeversuch erfolgreich war, erscheint die 2. Form mit dem Hauptteil des Programms. Dieses Programm zeigt die Liste der Dateien in dem Verzeichnis an, wenn man jetzt mit der rechten Maustaste auf eine Datei klickt, kann man sie löschen usw... das ganze (wenns nicht möglich ist) würde auch mit nem menu strip funzen.
Danke für die Hilfe!
winfreak |
|
| |
|
 |
BlAcKfINAl.aT Poster

Anmeldedatum: 26.07.2008 Beiträge: 162
|
Verfasst am: 20.09.2008, 17:52 |
|
|
Hi , Hab hier was gefunden , versuchs ma damit
Visual Basic: [code] ' Download a remote file to a local file name and include a path. Then, set the ' resume flag. The local file name will be created or will be overwritten, but the path must exist. Public Sub DownloadFile(ByVal sFileName As String, _ ByVal sLocalFileName As String, _ ByVal bResume As Boolean) Dim st As Stream Dim output As FileStream Dim cSocket As Socket Dim offset, npos As Long
SetBinaryMode(True)
If (sLocalFileName.Equals("")) Then sLocalFileName = sFileName End If
If (Not (File.Exists(sLocalFileName))) Then st = File.Create(sLocalFileName) st.Close() End If
output = New FileStream(sLocalFileName, FileMode.Open) cSocket = CreateDataSocket() offset = 0
If (bResume) Then offset = output.Length
If (offset > 0) Then 'Send an FTP command to restart. SendCommand("REST " & offset) If (m_iRetValue <> 350) Then offset = 0 End If End If
If (offset > 0) Then npos = output.Seek(offset, SeekOrigin.Begin) End If End If 'Send an FTP command to retrieve a file. SendCommand("RETR " & sFileName)
If (Not (m_iRetValue = 150 Or m_iRetValue = 125)) Then MessageString = m_sReply Throw New IOException(m_sReply.Substring(4)) End If
Do While (True) m_aBuffer.Clear(m_aBuffer, 0, m_aBuffer.Length) m_iBytes = cSocket.Receive(m_aBuffer, m_aBuffer.Length, 0) output.Write(m_aBuffer, 0, m_iBytes)
If (m_iBytes <= 0) Then Exit Do End If Loop
output.Close() If (cSocket.Connected) Then cSocket.Close() End If
ReadReply() If (Not (m_iRetValue = 226 Or m_iRetValue = 250)) Then MessageString = m_sReply Throw New IOException(m_sReply.Substring(4)) End If
End Sub
bzw.
' This is a function that is used to upload a file from your local hard disk to your FTP site ' and then set the resume flag. Public Sub UploadFile(ByVal sFileName As String, _ ByVal bResume As Boolean) Dim cSocket As Socket Dim offset As Long Dim input As FileStream Dim bFileNotFound As Boolean
cSocket = CreateDataSocket() offset = 0
If (bResume) Then Try SetBinaryMode(True) offset = GetFileSize(sFileName) Catch ex As Exception offset = 0 End Try End If
If (offset > 0) Then SendCommand("REST " & offset) If (m_iRetValue <> 350) Then
'The remote server may not support resuming. offset = 0 End If End If 'Send an FTP command to store a file. SendCommand("STOR " & Path.GetFileName(sFileName)) If (Not (m_iRetValue = 125 Or m_iRetValue = 150)) Then MessageString = m_sReply Throw New IOException(m_sReply.Substring(4)) End If
'Check to see if the file exists before the upload. bFileNotFound = False If (File.Exists(sFileName)) Then ' Open the input stream to read the source file. input = New FileStream(sFileName, FileMode.Open) If (offset <> 0) Then input.Seek(offset, SeekOrigin.Begin) End If
'Upload the file. m_iBytes = input.Read(m_aBuffer, 0, m_aBuffer.Length) Do While (m_iBytes > 0) cSocket.Send(m_aBuffer, m_iBytes, 0) m_iBytes = input.Read(m_aBuffer, 0, m_aBuffer.Length) Loop input.Close() Else bFileNotFound = True End If
If (cSocket.Connected) Then cSocket.Close() End If
'Check the return value if the file was not found. If (bFileNotFound) Then MessageString = m_sReply Throw New IOException("The file: " & sFileName & " was not found." & _ " Cannot upload the file to the FTP site.")
End If
ReadReply() If (Not (m_iRetValue = 226 Or m_iRetValue = 250)) Then MessageString = m_sReply Throw New IOException(m_sReply.Substring(4)) End If End Su [/code] |
|
| |
|
 |
winfreak Newbie

Anmeldedatum: 19.09.2008 Beiträge: 3
|
Verfasst am: 20.09.2008, 18:06 |
|
|
| Habs mal probiert... der schwafelt was von Deklanierungsfehlern |
|
| |
|
 |
BlAcKfINAl.aT Poster

Anmeldedatum: 26.07.2008 Beiträge: 162
|
Verfasst am: 20.09.2008, 18:18 |
|
|
MUsst doch nur das einfügen und die Funktionen dann aufrufen.
Kannste VB-Grundlagen? |
|
| |
|
 |
elek´tronik Tutorial Leser

Anmeldedatum: 25.07.2008 Beiträge: 56
|
Verfasst am: 21.09.2008, 11:06 |
|
|
(BlAcKfINAl.aT;8649) Kannste VB-Grundlagen? |
Das grade du ihm fragst ob er die VB-Grundlagen beherrscht finde ich irgendwie lustig. Und wenn ich mal den Source überfliege denn du hier per Copy & Paste gepostet hast fällt mir auf, das der Source ihm nichts bringt. Alles was er damit machen kann ist Uploaden und Downloaden, da ist noch kein löschen und kein listen und nichts dabei.
Ausserdem handelt es sich hier glaube ich um keinen VB6-Code und um keinen .NET-Code.
(BlAcKfINAl.aT;8649) MUsst doch nur das einfügen und die Funktionen dann aufrufen. |
Nein muss er nicht, er braucht auch noch einen Winsock in seiner Form der csocket heisst, aber auch das nur am Rande. So viel zum Thema VB-Grundlagen... |