我正在运行一个非常简单的程序,它试图在同一台机器上的一个文件夹中列出文件,该文件使用 UNC 格式指定(如http://msdn.microsoft.com/en-us/library/windows/中所述桌面/aa365247%28v=vs.85%29.aspx):
static string rootDir = @"\\?\d:\share\input";
static void Main(string[] args)
{
char[] invlidChars = Path.GetInvalidPathChars();
foreach (char invChar in invlidChars)
{
if (rootDir.Contains(invChar.ToString()))
{
Console.WriteLine("InvChar - {0}", invChar);
}
}
string[] matchFiles = Directory.GetFiles(rootDir);
}
但是 Directory.GetFiles() 不起作用并抛出 ArgumentException(当 - path 是零长度字符串、仅包含空格或包含一个或多个由 InvalidPathChars 定义的无效字符时抛出)。Console.Writeline() 不打印任何内容,这确认路径中没有无效字符。当我使用“\\UNC\?\d:\share\input”或“\\UNC\?\machinename\share\input”或“\\?\machinename\share\input”时,我得到了同样的异常。
"d:\share\input" 确实是一个共享文件夹。
有谁知道可能出了什么问题?
谢谢!