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

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

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

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

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

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

    

    第二种是通过文件名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级目录差不多够用了。

时间: 2024-08-03 01:06:19

根据文件名,随机分级保存文件的相关文章

文件夹分级保存文件

在上传文件时,文件可能会很多,我们知道,当把全部的文件放到同一个目录中之后,打开目录会很慢 这样也说明了,查找文件的效率是降低的 我们把文件放到不同的目录中,以便于提高文件查找效率 文件夹分级思想 采用16进制命名文件夹,创建二级目录,这样可以把文件放到16*16=256个文件夹里面 1 String str="lkjhgfds.jpg";//文件名 2 int a=str.hashCode();//文件名的哈希值 3 int b=a & 0xf;//取后4位 4 System

低版本ie保存文件时,文件名过长被截断

在工作中有一个下载文件的功能,遇到一个低版本ie保存文件时,文件名过长被截断的问题. asp.net MVC下载文件代码: 1 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(downloadFilePath); 2 request.KeepAlive = false; 3 WebResponse response = request.GetResponse(); 4 Stream stream = response.GetR

[android] 保存文件到手机内存

1. 界面的准备工作,普通登录界面,采用线性布局和相对布局. <Checkbox/>有个属性 android:checked=”true”,默认选中状态,相对布局里面<Button/>位于右边android:layout_alignParentRight=”true”,位于父控件的右面.密码框星号显示android:inputType=”textPassword” 2. 遇到device not found等错误可以直接忽略掉,布局文件属性里面绑定点击方法,传入的参数View对象代

(文件名.JAVA)的文件名只能与该文件中的public类的名称一致

1.如果类Yuangong 被声明为公共的(public),那么必须将类Yuangong 保存在名为Yuangong.java的文件中:2.反之,在一个文件中最多包含一个顶级的公共类,并且该公共类的名字与文件名相同.比如文件Yuangong .java中,允许定义一个或多个类,但最多允许一个顶级的公共类,此类名为Yuangong .此处强调的顶级的意思是,允许非顶级的公共类存在,如内部公共类等.说的简单点,一个文件中最多只能有一个类是public的,这样可以暴露类的定义,方便其他类来访问!如果已

win8不通过新打开窗口进行打开和保存文件,点击即显示文本内容,点击即保存文件

前面的一篇博客讲到通过打开新窗口进行打开和保存文件,这一篇则重点介绍怎样一步到位来进行打开和保存文件(这里还以.txt文本文件为例). 我们要打开.txt文本文件,无非是想要里面的文本内容,并且把其显示到页面里罢了,那我们能不能直接点击按钮就让文件的内容自动显示到页面上............ 而不需要经过打开新窗口这一步骤呢 同样,我们点击保存按钮,能不能就直接给文件命名为自己想要的名称,而且直接保存到自己想要的位置或者文件里........ 而不经过打开新窗口定位某一个具体的文件夹下这一步骤

python Tkinter接受键盘输入并保存文件

最近想用python写个切换host的小工具,折腾了好几天,终于实现了第一步. 采用Tkinter编程,text控件接受输入,然后点击save按钮,保存内容到当前文件夹下,文件名为hostb,如下两张图片: 直接上代码: #支持中文 #!coding:gbk #导入需要的包from Tkinter import *import timeimport osimport sys; #reload sysreload(sys); #设置系统的默认编码为utf8sys.setdefaultencodin

弹出打开/保存文件对话框 选择文件夹对话框

打开/保存文件对话框: CFileDialog::CFileDialog( BOOL bOpenFileDialog, //为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框 LPCTSTR lpszDefExt = NULL, //默认的文件扩展名 LPCTSTR lpszFileName = NULL, //默认的文件名 DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, //设定风格 LPCTSTR lpszFilt

Saving Files 保存文件

Saving Files 保存文件 PreviousNextGet started This lesson teaches you to Choose Internal or External Storage                   选择内部或者外部存储 Obtain Permissions for External Storage            为外部存储获取权限 Save a File on Internal Storage                        

MFC中CFileDialog打开和保存文件对话框(转)

首先我先写一段在VC6.0上打开/保存文件对话框的程序:        CString   FilePathName;//文件名参数定义    CFileDialog  Dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"TXT Files(*.txt)|*.txt|All Files(*.*)|*.*");     //打开文件    if(Dlg.DoModal() == IDOK)//是否打开成功    {