private void directoryBrowserTreeView_LoadOnDemand(object sender, Telerik.Windows.RadRoutedEventArgs e) { var radTreeViewItem = e.OriginalSource as RadTreeViewItem; var directoryViewModel = radTreeViewItem.DataContext as DirectoryViewModel; try { var subDirectoryCollection = Directory.GetDirectories(directoryViewModel.PhysicalPath); if (!subDirectoryCollection.Any()) { radTreeViewItem.IsLoadOnDemandEnabled = false; } else { foreach (var subDirectory in subDirectoryCollection) { var directoryInfo = new DirectoryInfo(subDirectory); var subDirectoryViewModel = new DirectoryViewModel { DirectoryName = System.IO.Path.GetFileName(subDirectory), PhysicalPath = subDirectory, DirectoryIconPath = "/FTPServer.DesktopClient;component/folder.png", SubDirectoryCollection = null, IsHidden = (directoryInfo.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden }; try { var subDirectoryCount = Directory.GetDirectories(subDirectory).Count(); if (subDirectoryCount > 0) { subDirectoryViewModel.SubDirectoryCollection = new ObservableCollection <DirectoryViewModel>(); } } catch { } directoryViewModel.SubDirectoryCollection.Add(subDirectoryViewModel); } } } catch { radTreeViewItem.IsLoadOnDemandEnabled = false; } }
public void Load() { try { var logicalDriveCollection = Environment.GetLogicalDrives(); foreach (var logicalDrive in logicalDriveCollection) { var directoryViewModel = new DirectoryViewModel { DirectoryName = logicalDrive, PhysicalPath = logicalDrive, DirectoryIconPath = "/FTPServer.DesktopClient;component/hdd_drive.png", IsHidden = false, }; var subDirectoryCount = Directory.GetDirectories(logicalDrive).Count(); if (subDirectoryCount > 0) { directoryViewModel.SubDirectoryCollection = new ObservableCollection <DirectoryViewModel>(); } this.DirectoryCollection.Add(directoryViewModel); } } catch { } try { var hostName = Dns.GetHostName(); var iphostentry = Dns.GetHostEntry(hostName); this.HostIpCollection.Add("127.0.0.1"); foreach (IPAddress ipaddress in iphostentry.AddressList) { if (ipaddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { this.HostIpCollection.Add(ipaddress.ToString()); } } this.HostIP = this.HostIpCollection.FirstOrDefault(); this.HostPort = 21; } catch { } }