Когда строка "D: \ test \ ..." передается методу System.IO.Directory.Exists
, она возвращает True
на моем компьютере. Я проверил следующий код:
public static void Main(string[] args)
{
if (Directory.Exists("D:\\test\\..."))
Console.WriteLine("Directory exist."); //Control gets here
else
Console.WriteLine("Does not exist.");
}
Это происходит, даже если в указанном месте не существует каталога с именем "..." (тройные точки).
Дальнейшее изучение этого вопроса показывает, что каким-то образом внутренне он проверяет только «D:», полностью игнорируя последнюю часть строки. Поскольку родительский каталог существует, он возвращает true.
Я хочу знать, есть ли способ проверить, не обрезая конечные точки?
Существуют ли такие сценарии, в которых результат метода Directory.Exists
может отличаться от ожидаемого?
Обновление:
Если я введу ту же строку «D: \ test \ ...» в адресную строку проводника Windows и нажму клавишу ввода, она сможет определить, что не может найти такой каталог. Есть ли способ получить подобное поведение?
Примечание: я знаю, что каталог с таким именем не может существовать, но я получаю строку ввода от пользователя, поэтому ввод в этот метод может быть любым.