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 をスローします (パスが長さ 0 の文字列である、空白のみが含まれている、または InvalidPathChars で定義されている無効な文字が 1 つ以上含まれている場合にスローされます)。Console.Writeline() は何も出力しません。これは、パスに無効な文字がないことを確認します。「\\UNC\?\d:\share\input」または「\\UNC\?\machinename\share\input」または「\\?\machinename\share\input」を使用すると、同じ例外が発生します。
「d:\share\input」は確かに共有フォルダーです。
誰が何が間違っているのか知っていますか?
ありがとう!