如何声明以下内容:
if (Directory.Exists(outputDestination)
&& new DirectoryInfo(outputDestination).GetFiles().Count() > 0)
抛出DirectoryNotFoundException
:在调用GetFiles()之前,如果我检查目录是否存在,则找不到路径的一部分
答案 0 :(得分:2)
如何声明以下内容:
if (Directory.Exists(outputDestination) && new DirectoryInfo(outputDestination).GetFiles().Count() > 0)
引发DirectoryNotFoundException吗?
您的代码可以抛出DirectoryNotFoundException
,因为您已经创建了a TOCTOU bug:
在软件开发中,检查时间到使用时间(TOCTTOU或TOCTOU,发音为“ tock too”)是一类软件错误,这些错误是由系统在条件检查之间的更改引起的(例如安全凭证)以及该检查结果的使用。这是一种竞争状况的例子。
仅仅是因为存在用于调用Directory.Exists()
的目录,但这并不意味着它仍然存在用于调用DirectoryInfo()
。