代码之家  ›  专栏  ›  技术社区  ›  Caspar Kleijne

如果…怎么办目录信息.GetFiles().长度超过Int32.MaxValue?

  •  8
  • Caspar Kleijne  · 技术社区  · 16 年前

    question 我注意到一个文件夹中的最大文件数 那个

     DirectoryInfo.GetFiles().Length
    

    正在返回一个系统.In32,但Int32的最大值为

     2.147.483.647  (Int32.MaxValue) 
    

    在NTFS(许多其他文件系统)上,文件的最大数量可能远远超过这个数字。

    在NTFS上是这样的

     4.294.967.295 single files in one folder (probably an Uint32)
    

    这就引出了一个有趣的问题:

    注意:这不是为什么的问题。我知道,那是很多文件;)

    1 回复  |  直到 9 年前
        1
  •  6
  •   Thomas Levesque    16 年前

    有一个 LongLength 上的属性 Array long . 不管怎样,如果 GetFiles Int32.MaxValue 不管怎样,你都会有问题。。。就像一个 OutOfMemoryException

    当你实际上不需要物品的数量时,我建议你使用 EnumerateFiles