예제 #1
0
        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();
            }
        }
예제 #2
0
        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());
            }
        }
예제 #3
0
        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;
            }
        }
예제 #4
0
        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();
            }
        }