我要把所有的用户指定的文件拷贝至同一个文件夹中,并且把文件名存放到一个数据表中,因此担心用户的文件名会相同,需要将拷进来的所有文件重新命名,请问用什么方法生成唯一的文件名?我查了好多资料,没有结果啊,那位大虾救急

解决方案 »

  1.   

    //获取文件名
    DateTime now =DateTime.Now;
    string  newname=now.ToString();
    newname=newname.Replace(" ","");
    newname=newname.Replace("-","");
    newname=newname.Replace(":","");
      

  2.   

    水平有限
    写的不好public string getNeedFileName()
    {
    DateTime dt=DateTime.Now;
    nowYear=dt.Year.ToString();
    nowMonth=dt.Month.ToString();
    nowDay=dt.Day.ToString();
    nowHour=dt.Hour.ToString();
    nowMinute=dt.Minute.ToString();
    nowSecond=dt.Second.ToString();
    if(dt.Month<10)
    {
         nowMonth="0" + dt.Month.ToString();
    }
    if(dt.Day<10)
    {
    nowDay="0" + dt.Day.ToString();
    }
    if(dt.Hour<10)
    {
    nowHour="0" + dt.Hour.ToString();
    }
    if(dt.Minute<10)
             {
    nowMinute="0" + dt.Minute.ToString();
    }
    if(dt.Second<10)
    {
             nowSecond="0" + dt.Second.ToString();
    }
    string newFileName=  nowYear + nowMonth + nowDay + nowHour + nowMinute + nowSecond;
    return newFileName;
    }
      

  3.   

    最后得到形如20050410121212.jpg样文件
      

  4.   

    DateTime.Now.Ticks
    //  此属性的值为自 0001 年 1 月 1 日午夜 12:00 以来所经过时间以 100 毫微秒为间隔表示时的数字。
     
    ---------------------
    四十年来家国,三千里地山河,凤阁龙楼连霄汉,玉树琼枝作烟箩。几曾识干戈?
      

  5.   

    使用
    System.Guid .NewGuid ().ToString ();作为文件名也可
      

  6.   

    System.DateTime.Now.ToString("yyyyMMdd")+System.Environment.TickCount.ToString()

    System.Guid.NewGuid().ToString()
    都可以试试。
      

  7.   

    楼上的人说加入时间参数到文件名,尽管机率小,并不表示没有重复的可能。我的想法是,先遍历判断file.txt是否存在,将之变为file!0.txt,我加了上独有的"!0"作为标识,当然你可以把"!0"改为任务的其它特征字符。
    //假如你把文件名放在一个DataSet中
    DataSet ds = new DataSet();
    DataTable tbl = ds.Tables.Add("FileNames");
    DataColumn col = tbl.Columns.Add("FileName");int i=0;
    //str为当前取得的文件名,下面用来判断有没有重复的文件名
    label: if ( ds.Tables["FileNames"].Rows.Find(str) )
    {
        str += String.Format("!{0}",i);
        i++;
        goto label;
    }
      

  8.   

    用System.Guid.NewGuid().ToString()不会重复
      

  9.   

    DateTime now =DateTime.Now;
    string  newname=now.ToString("yyyymmddhhmmss");
    这句话得到的直接是形如20050410121212.jpg
    这样的文件名
    两句话的东西居然让我写了二三十行!!
    脸红!!!!!!