[VB.NET] ลิสต์รายชื่อไฟล์ผ่าน FTP Server ด้วย WinSCP
โค้ดชุดนี้จะเป็นการแสดงผลรายชื่อไฟล์ภาพจาก FTP Server ผ่านอินเทอร์เน็ตด้วยของฟรี WinSCP Net Library มาแสดงผลลงบน ListView Control ก่อน จากนั้นก็ค่อยเลือกไฟล์ภาพมาแสดงผลใน PictureBox Control อีกที โดยแอดมินจะใช้ตัวอย่างจาก Free Hosting ของ www.serv00.com เข้าไปสมัครใช้งานได้ฟรีเลยครับผม ...http://www.g2gsoft.com/webboard/images/VBNet/listingfileftp.png
http://www.g2gsoft.com/webboard/images/VBNet/ftpwinscpref.png
มาดูโค้ดต้นฉบับเต็มกันเถอะ ...
Imports System.IO
Imports System.Net
Imports WinSCP
Public Class frmListFileHosting
' / --------------------------------------------------------------------------------
'// สำหรับ HOSTING
'// ตำแหน่งของไฟล์ภาพบน Hosting เพื่อนำมาแสดงผล
'// แก้ไข SUB DOMAIN และชื่อ DIRECTORY ที่ต้องการแสดงผลไฟล์ภาพ
Dim MyURL As String = "https://SUBDOMAIN.serv00.net/DIRECTORY/"
'Dim RemoteDir As String = "domains/SUBDOMAIN.serv00.net/public_html/DIRECTORY/"
'// Login เข้าสู่ระบบ Hosting ...
'// FTP Hostname ต้องดูจากตอนที่ Add Account for FTP เพราะอาจจะไม่เหมือนกับตัวอย่าง
Dim HostName As String = "s0.serv00.com"
Dim UName As String = "USERNAME"
Dim Pwd As String = "PASSWORD"
Private Sub frmListFileHosting_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
txtRemoteDir.Text = "domains/SUBDOMAIN.serv00.net/public_html/DIRECTORY/"
Label1.Text = "Filename: "
End Sub
' / --------------------------------------------------------------------------------
' / แสดงรายชื่อไฟล์จาก Remote Directory
' / --------------------------------------------------------------------------------
Private Sub btnListingClick(sender As System.Object, e As System.EventArgs) Handles btnListing.Click
'// Initialize ListView.
With ListView1
.Clear()
.View = View.Details
.GridLines = True
.FullRowSelect = True
.HideSelection = False
.MultiSelect = False
'// Add Columns.
.Columns.Add("Filename", Me.ListView1.Width \ 3 - 50)
.Columns.Add("Length (KB)", Me.ListView1.Width \ 3)
.Columns.Add("Last Modification", Me.ListView1.Width \ 3 + 20)
End With
'//
Me.Cursor = Cursors.WaitCursor
Try
'/ Setup session options
Dim sessionOptions As New SessionOptions
With sessionOptions
.Protocol = Protocol.Ftp
.HostName = HostName
.UserName = UName
.Password = Pwd
'/ FTP ไม่ต้องใช้
'.SshHostKeyFingerprint = "ssh-rsa 2048 XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX"
End With
'//
Using Session As New Session
'/ Connect with options.
Session.Open(sessionOptions)
'// กำหนด Remote Directory
Dim RemoteDirectory As RemoteDirectoryInfo = Session.ListDirectory(txtRemoteDir.Text)
Dim FileInfo As RemoteFileInfo
For Each FileInfo In RemoteDirectory.Files
Dim LV As New ListViewItem
If Not FileInfo.IsDirectory Or Not FileInfo.IsParentDirectory Then
LV = ListView1.Items.Add(FileInfo.Name)'// --> Primary Node
LV.SubItems.Add(Format(FileInfo.Length / 1024, "#,##0.00"))
LV.SubItems.Add(FileInfo.LastWriteTime)
End If
Next
End Using
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Me.Cursor = Cursors.Default
'// ปรับความกว้างของ Column ในการแสดงผลบน ListView
'ListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)
End Sub
' / --------------------------------------------------------------------------------
' / นำรายชื่อภาพจาก ListView Control มาแสดงผลใน PictureBox
' / --------------------------------------------------------------------------------
Private Sub ListView1_DoubleClick(sender As Object, e As System.EventArgs) Handles ListView1.DoubleClick
Try
'//
Me.Cursor = Cursors.WaitCursor
'// รับค่าชื่อไฟล์จาก ListView1.SelectedItems(0).Text เพื่อนำมาแสดงผลบน PictureBox (picURL)
Dim Req As WebRequest = WebRequest.Create(MyURL & ListView1.SelectedItems(0).Text)
Dim Res As WebResponse = Req.GetResponse()
Dim imgStream As Stream = Res.GetResponseStream()
Dim imgPic As Image = Image.FromStream(imgStream)
imgStream.Close()
'/ Load File Stream into PictureBox.
With picURL
picURL.Image = imgPic
.WaitOnLoad = True
.SizeMode = PictureBoxSizeMode.StretchImage
End With
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Me.Cursor = Cursors.Default
Label1.Text = "Filename: " & ListView1.SelectedItems(0).Text
End Sub
Private Sub frmListFileHosting_Resize(sender As Object, e As System.EventArgs) Handles Me.Resize
If ListView1.Columns.Count = 0 Then Return
With ListView1
.Columns("Filename").Width = Me.ListView1.Width \ 3 - 50
.Columns("Length").Width = Me.ListView1.Width \ 3
.Columns.Add("Last Modification").Width = Me.ListView1.Width \ 3 + 20
End With
End Sub
Private Sub btnExit_Click(sender As Object, e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub frmListFileHosting_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
Me.Dispose()
GC.SuppressFinalize(Me)
Application.Exit()
End Sub
End Class
ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010) ได้จากที่นี่ ...
หน้า:
[1]