//毫秒时间
String  fileName = System.currentTimeMillis() + "";
File filePath = new File(fileName );
//用毫秒时间创建文件名
filePath .createNewFile();
//如果建立成功
if(filePath.exists())
{
..........................
}可我的方法组长说毫秒不行啊
因为很多人同时用说不准阿我应该怎么写才能不重复阿

解决方案 »

  1.   

    String  fileName放入set中,然后从set中取出
      

  2.   

    这和数据库里面获取下一个主键的做法是一样的,要么用UUID,全局唯一的码来标识文件名,只用毫秒肯定不行;要么你就加上多线程的互斥操作。列出所有文件的做法我觉得效率不好,当文件很多的时候,操作很费时的。
      

  3.   

    有个FilenameFilter类,你可以看一下
      

  4.   

    建议使用UUID, 也就是16位的随机数JDK 1.5有现成的库JDK 1.4以下推荐使用JUG:http://www.doomdark.org/doomdark/proj/jug/这里有一个简单的实现代码:http://www.uk-dave.com/bytes/java/uuidgen.php
      

  5.   

    用每个用户的ID加系统时间,这样就不可能重复,因为用户ID应该是唯一的吧
      

  6.   

    public void getFilename(String fileName,int i){
    String fileNamei = fileName+i;
    File filePath = new File(fileName );if(filePath.exists())
    {
    getFilename(fileName,i+1);}else{
    .........
    }
    |
      

  7.   

    public void getFilename(String fileName,int i){
       String fileNamei = fileName+i;
       File filePath = new File(fileNamei );   if(filePath.exists())
       {
          getFilename(fileName,i+1);    }else{
          .........
        }
    }
      

  8.   

    File file = File.createTempFile("test", null, dir);