有没有一种简单的方法来测试您的命名管道是否正常工作?我希望确保我从我的应用程序发送的数据实际上已被发送。是否有一种快速简便的方法来获取所有命名管道的列表?
在Windows Powershell控制台中,输入
[System.IO.Directory]::GetFiles("\\.\\pipe\\")
如果您的操作系统版本高于Windows 7,您也可以输入以下命令:get-childitem \\.\pipe\
这会返回一个对象列表。如果你只想要名字:(get-childitem \\.\pipe\).FullName
在PowerShell 7中,第二个示例\\.\pipe\
不起作用(请参见此已知的错误),因此您必须坚持使用第一种语法。pipelist.exe
жӣҙдёәз®ҖеҚ•пјҢдҪҶеҸӘиғҪйҖҡиҝҮе‘Ҫд»ӨиЎҢж“ҚдҪңгҖӮ - Chris Charabaruk尝试使用以下内容:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
pipe
又是从哪里来的呢? - Kevin Doyon我偶然发现 Chrome 的一个功能,可以通过导航到 "file://.//pipe//" 来列出所有打开的命名管道。
由于我似乎找不到任何参考资料,而且它对我非常有帮助,所以我想分享一下。
在CMD
提示符下:
>ver
Microsoft Windows [Version 10.0.18362.476]
>dir \\.\pipe\\
/b
可以使输出更易处理。 - ixe013C#:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
提交时,此网站会解释第二个管道...您需要在开头使用两个反斜杠。因此,请确保使用System.IO.Directory.GetFiles(@"\\.\pipe\")
。
请注意,当我的机器上的某个管道具有无效字符时,我曾看到此函数调用引发“路径中存在非法字符”的异常。但 PipleList.exe 运行正常,因此似乎是微软 .NET 代码中的一个错误。
C:\myLocation\someFile.x
的管道的程序都会导致此错误。 - dss539
[System.IO.Directory]::EnumerateFiles('\\.\pipe\')
。 - Granger