02/02/15 18:08
dnha
Sto creando un programma che visualizza il contenuto remoto di un server FTP tramite il controllo TreeView:
il codice è chiaramente un algoritmo ricorsivo (per vedere il contenuto delle cartelle).
Dopo due iterazioni il codice si interrompe... qualcuno ha idea del perché? E soprattutto... Perché ExpandAll non funziona?
Allego lo screen comparativo tra FileZilla e la mia app.
il codice è chiaramente un algoritmo ricorsivo (per vedere il contenuto delle cartelle).
Dopo due iterazioni il codice si interrompe... qualcuno ha idea del perché? E soprattutto... Perché ExpandAll non funziona?
Allego lo screen comparativo tra FileZilla e la mia app.
Dim server As String = "ftp://dnha.altervista.org" Private Sub PopulateTreeView(ByVal dirNode As TreeNode, ByVal items() As String) For i = 0 To items.Length Dim name As String = items(i).Substring(items(i).LastIndexOf(" ") + 1, items(i).Length - items(i).LastIndexOf(" ") - 1) If items(i).Substring(0, 1) = "-" Then 'Se è un file dirNode.Nodes.Add(name) Else 'Se è una cartella PopulateTreeView(dirNode.Nodes.Add(name), GetListDirectoryDetails(server + dirNode.FullPath + name + "/")) End If Next End Sub Private Function GetListDirectoryDetails(ByVal url As String) Dim reqFTP As FtpWebRequest = Nothing reqFTP = DirectCast(WebRequest.Create(url), FtpWebRequest) reqFTP.Method = WebRequestMethods.Ftp.ListDirectoryDetails reqFTP.Credentials = New NetworkCredential("dnha", "$PASSWORD$") Dim response = DirectCast(reqFTP.GetResponse(), FtpWebResponse) Dim responseStream As Stream = response.GetResponseStream() Dim reader As New StreamReader(responseStream) Dim items() As String = reader.ReadToEnd.Split({Chr(10), Chr(13)}, StringSplitOptions.RemoveEmptyEntries) Array.Sort(items) Return items End Function Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load PopulateTreeView(tvFiles.Nodes.Add("/"), GetListDirectoryDetails(server)) tvFiles.ExpandAll() End Sub
Ultima modifica effettuata da dnha 02/02/15 18:09
aaa