Пример #1
0
        public void GetLinkTarget_IsASymLink_ReturnsTarget()
        {
            var target = new SymbolicLinkObject(@"\GLOBAL??\BitLocker").GetLinkTarget();

            Assert.True(target.Success);
            Assert.Equal(@"\Device\BitLocker", target.Value);
        }
Пример #2
0
    private static void ListDirectoryContents(string directoryObjectName)
    {
        var objects = new DirectoryObject(directoryObjectName).QueryDirectoryObjects();

        WriteLine();
        WriteLine($"Directory contents ({objects.Count()} objects):");
        WriteLine();

        var typeColumnLength = objects.Max(o => o.TypeName.Length) + 1;

        var sortedObjects = objects
                            .OrderByDescending(o => o is DirectoryObject)
                            .ThenBy(o => o.Name);

        foreach (var @object in sortedObjects)
        {
            var fullObjectName = directoryObjectName.ObjectNameJoin(@object.Name);

            if (@object.TypeName == "SymbolicLink")
            {
                var linkTarget = new SymbolicLinkObject(fullObjectName).GetLinkTarget();
                var printLink  = linkTarget.Success ? linkTarget.Value : linkTarget.FailureReason;
                WriteLine("{0,-" + typeColumnLength + "} {1} {2}", @object.TypeName, @object.Name, printLink);
            }
            else
            {
                WriteLine("{0,-" + typeColumnLength + "} {1}", @object.TypeName, @object.Name);
            }
        }
    }
Пример #3
0
        public void GetLinkTarget_DosDevices_ShouldReturnTarget()
        {
            var target = new SymbolicLinkObject(@"\DosDevices").GetLinkTarget();

            Assert.Null(target.FailureReason);
            Assert.True(target.Success);
            Assert.Equal(@"\??", target.Value);
            // note the above symlink is relative to my dev env potentially
        }