Почему бы вам не создать папку после ее создания?

Это не имеет смысла, поэтому я, очевидно, что-то не так:

DirectoryInfo folder = new DirectoryInfo(Environment.CurrentDirectory + @"\Test");

if (folder.Exists == false) {
    folder.Create();

    var doesItExists = folder.Exists;
}

Создает папку, если она не существует. За исключением doesItExists всегда ложь. Почему это было бы ложным, если бы я просто создал его?

Ответ 1

Значение в folder.Exists кэшировано. Я бы предложил сделать эту проверку:

var doesItExists = Directory.Exists(folder.FullName);

Или вы можете вызвать folder.Refresh(), чтобы обновить кеш, прежде чем проверять, существует ли каталог после его создания. См. Этот предыдущий ответ.

Ответ 2

Предполагая, что folder является DirectoryInfo или FileSystemInfo, он считывает свои значения один раз и затем возвращает кешированные значения. Он не замечает, что вы создали каталог. Вызовите Refresh().

В качестве альтернативы используйте Directory.Exists().

Ответ 3

это вернет вас, вам нужно вызвать refresh():

            DirectoryInfo folder = new DirectoryInfo(Environment.CurrentDirectory + @"\Test");

            if (folder.Exists == false)
            {
                folder.Create();
                folder.Refresh();

                var doesItExists = folder.Exists;
            }