为什么创建后文件夹不存在?

时间:2013-07-24 16:28:50

标签: c#

这似乎没有意义,所以我显然做错了什么:

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

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

    var doesItExists = folder.Exists;
}

如果文件夹不存在,则创建该文件夹。 doesItExists除外总是假的。如果我刚刚创建它,为什么会这样呢?

3 个答案:

答案 0 :(得分:17)

folder.Exists中的值为cached。我建议做这个检查:

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

或者您可以在创建目录之前检查目录是否存在之前调用folder.Refresh()来更新缓存。请参阅此previous answer

答案 1 :(得分:12)

假设folderDirectoryInfoFileSystemInfo,它会读取一次值,然后返回缓存值。它没有注意到您已创建目录。致电Refresh()

或者使用Directory.Exists()

答案 2 :(得分:3)

这会让你变为现实,你需要调用refresh():

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

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

                var doesItExists = folder.Exists;
            }