有没有一种简单的方法可以测试命名管道是否正常工作?我想确保我从我的应用程序发送的数据确实已发送。有没有一种快速简便的方法来获取所有命名管道的列表?
Answers:
您可以从sysinternals使用Process Explorer查看这些内容。使用“查找->查找句柄或DLL ...”选项,并输入模式“ \ Device \ NamedPipe \”。它将向您显示哪些进程打开了哪些管道。
pipelist.exe
从SysInternals使用甚至更简单,但这仅是命令行。
在Windows Powershell控制台中,键入
[System.IO.Directory]::GetFiles("\\.\\pipe\\")
get-childitem \\.\pipe\
这将返回对象列表。如果只需要名称:
(get-childitem \\.\pipe\).FullName
请尝试以下操作:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
pipe
来自哪里?
我偶然发现了Chrome中的一项功能,该功能会通过导航到“ file://.///pipe//”列出所有打开的命名管道
由于我似乎找不到对此的任何参考,并且对我很有帮助,所以我想我可以分享一下。
C#:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
提交时,该网站解释了第二个管道...在开始时需要两个反斜杠。因此,请确保使用System.IO.Directory.GetFiles(@“ \\。\ pipe \”)。
请注意,我已经看到此函数调用在路径中抛出“非法字符”。当机器上的管道之一包含无效字符时发生异常。尽管PipleList.exe可以正常运行,所以它似乎像MS的.net代码中的错误。
C:\myLocation\someFile.x
都将导致此错误。