上传文件到服务器时,为防止一个目录下面出现太多文件,使用hash算法打散存储
private String makePath(String filename,String savePath){
//得到文件名的hashCode的值,得到的就是filename这个字符串对象在内存中的地址
int hashcode = filename.hashCode();
int dir1 = hashcode&0xf; //0--15
int dir2 = (hashcode&0xf0)>>4; //0-15
//构造新的保存目录
String dir = savePath + "\\" + dir1 + "\\" + dir2;
//File既可以代表文件也可以代表目录
File file = new File(dir);
//如果目录不存在
if(!file.exists()){
//创建目录
file.mkdirs();
}
return dir;
}
本文介绍了一种利用散列算法优化服务器上文件存储的方法,通过将文件名的hashCode值进行位运算,生成二级目录路径,有效避免了单一目录下文件过多的问题,提高了文件存储和检索效率。
361





