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