最大文件数出错

时间:2010-09-22 05:25:26

标签: c#

有没有办法在目录中的最大文件数上抛出新的异常?

4 个答案:

答案 0 :(得分:1)

我不是特别了解C#,但我知道Java没有特定的异常或错误来抛出完整的驱动器。我建议简单地创建自己的异常类并使用它。我建议将其称为FullDirectoryErrorDirectoryOverflowError,假设它严重到被称为错误。

答案 1 :(得分:1)

不,没有:

你可以用更通用的

来捕捉它
System.IO.IOException

并阅读(底层)消息,您可以从该点抛出自编写的异常。

<强>更新 I just learned。你使用

   bool isfull = info.GetFiles().LongLength == 4.294.967.295

属性。不幸的是,它会占用你所有的记忆。

因此使用

   DirectoryInfo.EnumerateFiles().Count()
也许以分块的方式可能是更好的方法

供参考:

  • 65,534 for FAT32
  • 4,294,967,295 FOR NTFS

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,但为什么首先你想要抓住它?捕获中的补偿行动是什么?

请提供更多信息,了解您想要实现的目标。