如题,特请教各位,望不吝赐教:正实现一个功能,存在将非常多的文件都放在一个文件夹中,文件数量可能是几万,也可能是几十万,我感觉这种方式有些不妥,但又不知道文件系统能支持最大的文件数是多少,会不会影响性能等等.请了解这些方面的朋友能指点一下,不知道是否还有其他更好的技术手段来实现我这个功能?

解决方案 »

  1.   

    最大文件数目决定于你的文件系统类型:
    FAT16- 512
    FAT32- 65,534 
    NTFS- 4,294,967,295我也不了解NTFS的结构,只是猜想它允许了那么大的文件数目,应该不会明显的影响性能的,
    只是文件多了,通过explorer访问慢,
      

  2.   

    目录下文件多,系统变慢是一个假象。实际上是explorer在打开目录时创建ListView的时候慢。
    实际上直接打开和操作文件(CreateFile)是不慢的,有时多层目录反而会稍慢。
      

  3.   

    嗯,非常感谢各位的热心回答.现在我之所以不愿意分文件夹存放的原因就是,windows文件系统下,如果频繁的对文件夹进行添加和删除的话,尤其是删除,特别容易造成文件夹锁定,出现无法删除的情况,必须重启后才能解决.
    所以,迫不得已,我就只能考虑少建文件夹,多建立文件的方法,但多建文件,放到同一个文件夹下,又怕存在问题...从上面各位的回答来看,似乎文件多少不是很大的问题?BTW,我这边系统的运行环境一般是NTFS,有时候可能也有FAT32.
      

  4.   

    ------
    过去试过了,不能超过40000个左右,超过就不能再导入文件了,建议你放文件的时候,先叛断文件的数目,超过4000个文件就新建一个文件夹放文件
    ----------------------------我也试过的,创建20万个文件都没问题(当然是NTFS)并且文件多了以后,创建和写入的速度并不会慢,楼主可以写个简单程序测试
      

  5.   

    OK,多谢楼上的 phoenix96_2000 , 另外,不知道各位有没有好的办法解决 windows删除目录时锁定的问题?  不用说程序执行删除,就是有时候直接在windows中删除一个文件夹,都有可能发生目录下的文件全部删除,但最上层的文件夹删不掉,提示被锁定.
      

  6.   

    可能定位文件名会有点慢吧,它要通过索引查找的话会快些,这是在NTFS下才有的
      

  7.   

    我现在做了个程序在循环建立文件测试, NTFS的文件系统, FAT32才试了一下,5000多个文件后就非常慢了.NTFS的文件系统上建立文件,刚开始的时候建立非常快,几秒钟就可以建立1000多文件,但现在才建立到50000多个文件,速度已经是和刚开始的时候有明显的差距了.速度越来越慢,看来一个文件夹中放大量文件的方式还是不可取.对了,不知道是否可以通过LDAP解决? 这个我了解不多,请大家指点一下.
      

  8.   

    谢谢大家回复,麻烦大家继续给我一些建议和指导.to: NJHS(天上来客我的想法就是不想再建立多级目录,想把所有文件都放到一个文件夹中,之所以这样做,主要是有我自己程序上的考虑.phoenix96_2000:你提到想法很有道理,但我自己写程序验证了一下,在建立了20000个文件后我就休眠几分钟,但几分钟程序再快速建立文件,开始快一点,但后来又慢了下来,到6万多个文件的时候,休眠后刚开始建立确能快一点,但后来的建立速度已经和刚开始已经有非常大的差别了.大家都没有遇到过么? 比如你们自己部署一个大型的信息系统,涉及到文件档案的存储,你们都会采用什么样的技术手段呢?(采用专业的网络文件存储系统除外), 别告诉我存到数据库中(这个方式性能太低,不考虑).