gpt4 book ai didi

c# - 创建目录不会将 Exists 属性更新为 true

转载 作者:太空狗 更新时间:2023-10-30 01:01:48 25 4
gpt4 key购买 nike

我有以下示例代码。

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 :

Exists property: true if the file or directory exists; otherwise, false.

为什么 Exists 在创建目录后返回 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;
}
}

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

也就是说,如果您在这期间没有再次获取属性值,那对您没有帮助。不过,你的情况就是这样。

关于c# - 创建目录不会将 Exists 属性更新为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36737162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com