public void GetLinkTarget_IsASymLink_ReturnsTarget() { var target = new SymbolicLinkObject(@"\GLOBAL??\BitLocker").GetLinkTarget(); Assert.True(target.Success); Assert.Equal(@"\Device\BitLocker", target.Value); }
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); } } }
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 }