diff --git a/tst/memfs-dotnet/Program.cs b/tst/memfs-dotnet/Program.cs index 50b24882..ea0bb1ba 100644 --- a/tst/memfs-dotnet/Program.cs +++ b/tst/memfs-dotnet/Program.cs @@ -254,6 +254,7 @@ namespace memfs Host.ReparsePointsAccessCheck = false; Host.NamedStreams = true; Host.PostCleanupWhenModifiedOnly = true; + Host.PassQueryDirectoryFileName = true; return STATUS_SUCCESS; } @@ -849,6 +850,35 @@ namespace memfs return false; } + public override int GetDirInfoByName( + Object ParentNode0, + Object FileDesc, + String FileName, + out String NormalizedName, + out FileInfo FileInfo) + { + FileNode ParentNode = (FileNode)ParentNode0; + FileNode FileNode; + + FileName = + ParentNode.FileName + + ("\\" == ParentNode.FileName ? "" : "\\") + + Path.GetFileName(FileName); + + FileNode = FileNodeMap.Get(FileName); + if (null == FileNode) + { + NormalizedName = default(String); + FileInfo = default(FileInfo); + return STATUS_OBJECT_NAME_NOT_FOUND; + } + + NormalizedName = Path.GetFileName(FileNode.FileName); + FileInfo = FileNode.FileInfo; + + return STATUS_SUCCESS; + } + public override Int32 GetReparsePointByName( String FileName, Boolean IsDirectory,