まずはファイル名から考える

ナップザック方式でmsec単位で圧縮する

int m_kap=UNIX_TIME % 1000 ; //prenas msec

int m_sidbang =m_kap % 10 ;

m_kap / = 10 ; // msecの上2桁と下一桁に分ける

int a = m_kap ;

a*= 60 ; a += SECOND ;

a*=60 ; a += HOUR ;

a*= 31 ; a += DAY ;

a*= 12 ; a += MONTH ;

a*=100 ; a += (YEAR % 100) ;

a*= 10 ; a += m_sidbang ;s

//これを半角英数の大文字と小文字、数字に割り当て、62進数にして、文字数を圧縮する

String[] s =new Strring[]{ "0","1",".....(省略)...."Z"};

String ret="";

while( a > 0 )

{

ret +=s[ a % 10 ] ; //文字列の加算

a /= 10 ;

}

あとはファイル名の拡張子前に ret を挿入する

引数はフォルダ指定か、複数ファイル指定にする


・・・なかなかファイル名が短くなる思うが、世界中でやられてる手法だろうなぁ

名前を考える必要がなく、まず重なることがないユにークな名前を付ける。

---

一応、それでも重なることを疑う人のために、自身のファィル名を加え、パリティをも考えたが、そこまでのコストは過ぎてると判断した。

これの仕様は、ファイル名が短くなることも一種のウリなので、以上までにした。

誰か確率を計算して