C# 搜索可用管道时出现意外行为

C# 搜索可用管道时出现意外行为,c#,named-pipes,getfiles,C#,Named Pipes,Getfiles,我们使用的GetFiles方法如下: var pipePrefix = "Test_"; Directory.GetFiles("\\.\pipe\", pipePrefix + "*"); 我们正在寻找类似“测试1”、“测试2”、“测试3”的管道。我们知道这一点,但我们无法为我们的行为找到解释 到目前为止,我们测试了三台Windows 10和一台Windows 7的机器。在Windows 10上,一切正常(据我们所知)。我们每次都能找到所有的管道。在Windows 7计算机上,我们遇到了一些

我们使用的GetFiles方法如下:

var pipePrefix = "Test_";
Directory.GetFiles("\\.\pipe\", pipePrefix + "*");
我们正在寻找类似“测试1”、“测试2”、“测试3”的管道。我们知道这一点,但我们无法为我们的行为找到解释

到目前为止,我们测试了三台Windows 10和一台Windows 7的机器。在Windows 10上,一切正常(据我们所知)。我们每次都能找到所有的管道。在Windows 7计算机上,我们遇到了一些问题:

使用上面的代码,我们根本找不到任何管道。但是如果我们通过搜索

Directory.GetFiles("\\.\pipe\", "*");
我们找到所有管道,但我们还有一个步骤来选择管道。我们尝试了更多的查询:

Directory.GetFiles("\\.\pipe\", "*");           //We find our pipes
Directory.GetFiles("\\.\pipe\", "T" + "*");     //We find our pipes
Directory.GetFiles("\\.\pipe\", "Te" + "*");    //We don't find our pipes
Directory.GetFiles("\\.\pipe\", "Tes" + "*");   //We don't find our pipes
Directory.GetFiles("\\.\pipe\", "Test" + "*");  //We don't find our pipes
Directory.GetFiles("\\.\pipe\", "Test_" + "*"); //We don't find our pipes
我们没有发现任何隐藏字符,也没有引发异常

到目前为止,我们还不知道Windows 7是否是问题所在

更新07.11.19:我们安装了一台新的Windows 7和新的Windows 10机器,并尝试了多个字母,不仅是T。在Windows 7上,我们有时发现管道带有一个字母,如T或U,有时带有两个字母,如Te或Ug。但我们总是在Windows10上找到管道。我们没有在这些机器上设置我们的软件,我们只是用控制台应用程序搜索现有的管道。因此,从我们的角度来看,这似乎是Windows7上的问题,而不是我们的应用程序中的问题

所以我的问题不是我们如何解决这个问题。我相信我们可以使用不同的模式,然后进行过滤,或者使用完全不同的方法,而不是基于GetFiles/EnumerateFiles(我想是最好的选择)。我的问题是:


为什么根据输入以及操作系统的不同,行为会有所不同?

来自Win7:能否添加由Directory.GetFiles(“\\.\pipe\”,“T”+“*”)返回的管道列表。?(所有管道均以T开头)。@EylM这与字母无关,我们尝试了多个字母,不仅T始终是相同的。