创建目录不会将"存在"属性更新为 true



我有以下示例代码。

private DirectoryInfo PathDirectoryInfo
{
    get
    {
        if (_directoryInfo == null)
        {
            // Some logic to create the path
            // var path = ...
            _directoryInfo = new DirectoryInfo(path);
        }
        return _directoryInfo;
    }
}
public voide SaveFile(string filename)
{
    if (!PathDirectoryInfo.Exists)
    {
         PathDirectoryInfo.Create();
    }
     // PathDirectoryInfo.Exists returns false despite the folder has been created.
     bool folderCreated = PathDirectoryInfo.Exists;  // folderCreated  == false
    // Save the file
    // ...
}

根据MSDN:

存在

属性:如果文件或目录存在,则为 true;否则为 false。

为什么 存在 在创建目录后返回 false?我错过了什么吗?

您可以将

属性更改为以下内容:

private DirectoryInfo PathDirectoryInfo
{
    get
    {
        if (_directoryInfo == null)
        {
            // Some logic to create the path
            // var path = ...
            _directoryInfo = new DirectoryInfo(path);
        }
        else
        {
            _directoryInfo.Refresh();
        }
        return _directoryInfo;
    }
}

这将确保在获取属性值时始终使用当前信息。

也就是说,如果您之间没有再次获得房产价值,这对您没有帮助。 不过,你在你的情况下。

最新更新