C# 对DirectoryInfo.Enumerative文件进行迭代是否会引发异常?
调用C# 对DirectoryInfo.Enumerative文件进行迭代是否会引发异常?,c#,exception,io,C#,Exception,Io,调用DirectoryInfo.EnumerateFiles可能引发异常,例如DirectoryNotFoundException。只有在获取IEnumerable对象时,或者在迭代文件时(即foreach调用IEnumerator.MoveNext)才会发生这种情况吗 换句话说,下面的代码安全吗 IEnumerable<FileInfo> fileInfos; try { fileInfos = directoryInfo.EnumerateFiles(); }
DirectoryInfo.EnumerateFiles
可能引发异常,例如DirectoryNotFoundException
。只有在获取IEnumerable
对象时,或者在迭代文件时(即foreach
调用IEnumerator.MoveNext
)才会发生这种情况吗
换句话说,下面的代码安全吗
IEnumerable<FileInfo> fileInfos;
try
{
fileInfos = directoryInfo.EnumerateFiles();
}
catch // snip
{
// snip
}
foreach (FileInfo fileInfo in fileInfos)
{
// Do something
}
IEnumerable fileInfos;
尝试
{
fileInfos=directoryInfo.EnumerateFiles();
}
接住/剪断
{
//剪断
}
foreach(fileInfos中的FileInfo FileInfo)
{
//做点什么
}
或者我也需要将foreach部分放入一个try块中(如果我想返回某个try块中不允许的内容,这会变得非常糟糕)
假设枚举数没有引发异常,那么在遍历文件时删除目录会发生什么情况 不幸的是,此API可能会在枚举文件
/枚举目录
调用和移动下一步
调用上引发异常。在这两种情况下,一旦抛出异常,就不能继续使用该枚举数
这不仅仅是目录NotFoundException
;它还可以抛出未经授权的DaccessException、PathTooLongException和其他异常
这已经发生了,但是没有关于修复的消息。同时,还有一个,或者说一个