What is the best way to generate a unique and short file name in Java

后端 未结 16 2391
不思量自难忘°
不思量自难忘° 2020-11-29 20:51

I don\'t necessarily want to use UUIDs since they are fairly long.

The file just needs to be unique within its directory.

One thought which comes to mind is

16条回答
  •  天涯浪人
    2020-11-29 21:24

    This works for me:

    String generateUniqueFileName() {
        String filename = "";
        long millis = System.currentTimeMillis();
        String datetime = new Date().toGMTString();
        datetime = datetime.replace(" ", "");
        datetime = datetime.replace(":", "");
        String rndchars = RandomStringUtils.randomAlphanumeric(16);
        filename = rndchars + "_" + datetime + "_" + millis;
        return filename;
    }
    

    // USE:

    String newFile;
    do{
    newFile=generateUniqueFileName() + "." + FileExt;
    }
    while(new File(basePath+newFile).exists());
    

    Output filenames should look like :

    2OoBwH8OwYGKW2QE_4Sep2013061732GMT_1378275452253.Ext
    

提交回复
热议问题