因此,在我的treeView_AfterLabelEdit中,我想应用用户输入的文件夹名称,并查看文件系统是否返回重复名称的错误。使用try-catch块有没有一种优雅的方法呢?
提前致谢!
答案 0 :(得分:0)
首先,我假设您从treeView_AfterLabelEdit开始使用.Net和VC ++。
我不知道如何通过异常处理来实现这一目标,但这里还有其他一些想法:
您可以使用Directory::CreateDirectory
。这将创建目录,如果它已经存在,它将不会执行任何操作。
Directory::Exists
可以让你在使用它之前检查目录是否存在。
我不确定这与竞争条件有什么关系。
答案 1 :(得分:0)
是的,所以这显然是TOCTOU问题 - 这意味着唯一合理安全的解决方案是“尝试创建它,并抱怨如果这不起作用”。 - 做任何其他事情只会使代码更复杂,你仍然必须检查代码是否尝试创建它时是否有错误。