GetFiles
メソッドの文書化されていない動作が、System.IO.Directory
にありました。Directory.GetFilesに存在しないファイルが見つかりました
メソッドに渡さsearchPattern
パラメータは、"nul.*"
または"aux.bmp"
として、予約済みのWindowsデバイス名が含まれているときはいつでも、方法等、C:\Users\ft1\nul
又はD:\aux
ように、存在しないファイルの名前を含む配列を返し
Iそれらのデバイス名が "。"のようなそのコンテキストを特別な意味を持っているのだろうか。または ".."、またはこれが単なるバグであるかどうか。とにかく、それはまだかなり奇妙に思えます。例えば 、C#で、このコードスニペット:
string[] fileNames = Directory.GetFiles(@"C:\D:\..\..\...\", "con.txt");
foreach (string fileName in fileNames) Console.WriteLine(fileName);
プリント
C:\D:\..\..\...\con
任意の手がかり?
を.NET Frameworkは、このような予約名のいずれかの組み込みのリストを持っている場合、あなたは知っていますか? –
それは良い質問ですが、おそらくそれは実際のSOの質問として、しかし質問[どのように指定された文字列が合法的(許可された)ファイル名Windowsでのチェックですか?](http://stackoverflow.com/questions/62771/given-string-legal-allowed-file-name-under-windows)のチェックが既に行われている場合、私はあなたにそのリンクを与えます。 –
エリックありがとう! –