private void ChangeDirectory() { listObjects.Items.Clear(); if (treeDirectories.SelectedNode != null) { listObjects.BeginUpdate(); try { using (DirectoryHandle dhandle = new DirectoryHandle(this.NormalizePath(treeDirectories.SelectedNode.FullPath), DirectoryAccess.Query)) { var objects = dhandle.GetObjects(); foreach (var obj in objects) { var item = listObjects.Items.Add(new ListViewItem(new string[] { obj.Name, obj.TypeName, "" })); if (imageList.Images.ContainsKey(obj.TypeName.ToLower())) { item.ImageKey = obj.TypeName.ToLower(); } else { item.ImageKey = "object"; } if (obj.TypeName == "SymbolicLink") { try { using (SymbolicLinkHandle shandle = new SymbolicLinkHandle( this.NormalizePath( treeDirectories.SelectedNode.FullPath + "\\" + obj.Name), SymbolicLinkAccess.Query)) item.SubItems[2].Text = shandle.GetTarget(); } catch { } } } } } catch (WindowsException) { } listObjects.EndUpdate(); } }
public static string GetPathForDosDrive(char driveLetter) { driveLetter = char.ToUpperInvariant(driveLetter); if (driveLetter < 'A' || driveLetter > 'Z') { throw new ArgumentException("The drive letter must be between A to Z (inclusive)."); } using (var shandle = new SymbolicLinkHandle(@"\??\" + driveLetter + ":", SymbolicLinkAccess.Query)) { return(shandle.GetTarget()); } }
public static string GetPathForDosDrive(char driveLetter) { driveLetter = char.ToUpperInvariant(driveLetter); if (driveLetter < 'A' || driveLetter > 'Z') throw new ArgumentException("The drive letter must be between A to Z (inclusive)."); using (SymbolicLinkHandle shandle = new SymbolicLinkHandle(@"\??\" + driveLetter + ":", SymbolicLinkAccess.Query)) { return shandle.Target; } }
private void ChangeDirectory() { listObjects.Items.Clear(); if (treeDirectories.SelectedNode != null) { listObjects.BeginUpdate(); try { using (DirectoryHandle dhandle = new DirectoryHandle(this.NormalizePath(treeDirectories.SelectedNode.FullPath), DirectoryAccess.Query)) { var objects = dhandle.GetObjects(); foreach (var obj in objects) { var item = listObjects.Items.Add(new ListViewItem(new string[] { obj.Name, obj.TypeName, "" })); if (imageList.Images.ContainsKey(obj.TypeName.ToLower())) item.ImageKey = obj.TypeName.ToLower(); else item.ImageKey = "object"; if (obj.TypeName == "SymbolicLink") { try { using (SymbolicLinkHandle shandle = new SymbolicLinkHandle( this.NormalizePath( treeDirectories.SelectedNode.FullPath + "\\" + obj.Name), SymbolicLinkAccess.Query)) item.SubItems[2].Text = shandle.GetTarget(); } catch { } } } } } catch (WindowsException) { } listObjects.EndUpdate(); } }