DirectoryInfoクラスのコンストラクターに最後が全角スペースで終わるようなパスを渡すと、
実際はディレクトリがあるにもかかわらず、DirectoryNotFoundExceptionが発生します。
このときのエラーの内容をよくみると、どうやらコンストラクターに渡したパスがトリムされていて
最後の全角スペースがなくなった状態で探しにいっているようです。
これを回避する良い手段はないのでしょうか?
以下のサンプルで簡単に確認できます。
まず準備として、Cドライブのルートの『てすと 』フォルダを作成します。
最後のスペースは全角スペースです。
このフォルダにいくつか適当なファイルをコピーしておきます。これで準備は終わりです。
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace GetDirectoriesBugTest
{
class Program
{
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo(@"C:\てすと ");
DirectoryInfo[] dirList = di.GetDirectories();
foreach (DirectoryInfo dir in dirList)
{
Console.WriteLine("'{0}'", dir.Name);
}
}
}
}