有没有办法在目录中的最大文件数上抛出新的异常?
答案 0 :(得分:1)
我不是特别了解C#,但我知道Java没有特定的异常或错误来抛出完整的驱动器。我建议简单地创建自己的异常类并使用它。我建议将其称为FullDirectoryError
或DirectoryOverflowError
,假设它严重到被称为错误。
答案 1 :(得分:1)
不,没有:
你可以用更通用的
来捕捉它System.IO.IOException
并阅读(底层)消息,您可以从该点抛出自编写的异常。
<强>更新强> I just learned。你使用
bool isfull = info.GetFiles().LongLength == 4.294.967.295
属性。不幸的是,它会占用你所有的记忆。
因此使用
DirectoryInfo.EnumerateFiles().Count()
也许以分块的方式可能是更好的方法
供参考:
(source)
答案 2 :(得分:0)
这样的东西?
public static void checkFileNumber(string directoryToCheck, int maxNumber )
{
if ( Directory.Exists( directoryToCheck ) )
{
if ( Directory.GetFiles( directoryToCheck ).Length > maxNumber )
{
throw new Exception("Too many files in " + directoryToCheck);
}
}
}
请务必use System.IO;
: - )
答案 3 :(得分:0)
抛出异常是一项昂贵的行动;当你可以避免它时,请这样做。如果可能的话,尝试以防御性方式进行编程。但是当抛出一个时,你必须提供一个特定异常的匹配catch。
像Casper Kleijne所说的那样,你可以抓住IOException,但为什么首先你想要抓住它?捕获中的补偿行动是什么?请提供更多信息,了解您想要实现的目标。