-
同一目录下文件过多
(1) 按照上传时间进行目录分离(年、月、日)
(2) 按照上传用户进行目录分离
(3) 按照唯一文件名的hashcode进行目录分离 -
目录分离算法—hacode
int hashCode = fileName.hashCode();
System.out.println(hashCode);
//int类型在内存中4位32字节,转成16进制,得到8个16进制数
/*String hex = Integer.toHexString(hashCode);
//System.out.println(hex); //056d9363
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hex.length(); i++) {
sb.append("/").append(hex.charAt(i));
}
return sb.toString();*/
// 获得一级目录
//int d1 = hashCode & 0xf;
// 获得二级目录
//int d2 = (hashCode >>> 4) & 0xf;
int no;
StringBuilder sb = new StringBuilder();
for (int i = 7; i >= 0; i--) {
no = (hashCode >>> 4*i) & 0xf;
sb.append("/").append(no);
}
return sb.toString();