根据文件名,随机分级保存文件

Posted 如若千夫所指

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据文件名,随机分级保存文件相关的知识,希望对你有一定的参考价值。

    用户上传的文件,保存在服务器本地。如果用户够多,那么用户通过上传操作,保存到服务器的文件也会越来越多。

    如果这些文件够多且只保存在一个文件夹里面的话,就会导致,文件夹打不开,甚至服务器崩溃。

    那么就需要小心的规划这些文件的保存位置,通常会给每个文件夹保存的文件设置一个上限。

 

    文件保存在什么位置,一般有两种方法。

    一种是:为每个用户单独的创建一个文件夹。然后再根据不同的文件生成不同文件夹。

    

    第二种是通过文件名32位的UUID随机生成8级数字目录,这样也能保证每个文件夹文件不会出现过多的现象。

 

    8级目录代码:

    String   name = UUIDUtil.getId();

    int   hashCode = name.hashCode();         //把32位的UUID字符串变成串二进制数。

    String  dir  =  "";

    for(int  i = 0;i  <  8;i++) {

      int  d  = hashCode & 0xf;                  //与上最大的16进制数,得到的就是最后4位的二进制,从而得到0~15的数

      dir  =  dir  + d  + "/";

      hashCode >>4;                               //二进制右移四位,刚好够移7次,得到8级目录

    }

            最后的dir就是一个8级目录地址。通常情况一般用不了8级,4级目录差不多够用了。

 

以上是关于根据文件名,随机分级保存文件的主要内容,如果未能解决你的问题,请参考以下文章

php文件随机访问和对象到文件保存

将随机森林模型保存到文件?

如何编写文件以通过 Lua 语言保存随机数

根据 Tkinter 中保存的文件编写另一个文本文件

java 产生20个50以内的随机整数保存到文件中,从文件中读取这20个数后就算其总和

Python 脚本生成测试数据,Python生成随机数据,Python生成大量数据保存到文件夹中