private async void GetListDirecotry(FtpWebRequest webRequest) { explorerListBox.Items.Clear(); explorerListBox.Items.Refresh(); string direcotry = await DownloadListDirectory(webRequest); string[] entities = direcotry.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries); files = new List <FileEntity>(); for (int i = 0; i < entities.Length; i++) { FileEntity temp = new FileEntity(); var str = entities[i].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Last(); temp.FileName = str.Substring(0, str.Length - 1); if (entities[i][0] == 'd') { temp.FileType = FileType.Directory; } else { temp.FileType = FileType.File; } FileEntityUserControll tempControll = new FileEntityUserControll(temp); explorerListBox.Items.Add(tempControll); } }
private async void ExplorerListBoxMouseDoubleClick(object sender, MouseButtonEventArgs e) { FileEntityUserControll fileUserControll = (FileEntityUserControll)explorerListBox.SelectedItem; FileEntity file = fileUserControll.file; if (file.FileType == FileType.Directory) { FtpWebRequest tempWebRequest = (FtpWebRequest)WebRequest.Create(address + @"\" + file.FileName); tempWebRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails; tempWebRequest.Credentials = new NetworkCredential(user, password); GetListDirecotry(tempWebRequest); currentAddress = address + @"\" + file.FileName; } else { SaveFileDialog fileDialog = new SaveFileDialog(); if (fileDialog.ShowDialog() == true) { string path = fileDialog.FileName; await DownloadFile(path, file.FileName); } } }