在C#中如何生成唯一的文件名? 我要把所有的用户指定的文件拷贝至同一个文件夹中,并且把文件名存放到一个数据表中,因此担心用户的文件名会相同,需要将拷进来的所有文件重新命名,请问用什么方法生成唯一的文件名?我查了好多资料,没有结果啊,那位大虾救急 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //获取文件名 DateTime now =DateTime.Now; string newname=now.ToString(); newname=newname.Replace(" ",""); newname=newname.Replace("-",""); newname=newname.Replace(":",""); 水平有限写的不好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;} 最后得到形如20050410121212.jpg样文件 DateTime.Now.Ticks// 此属性的值为自 0001 年 1 月 1 日午夜 12:00 以来所经过时间以 100 毫微秒为间隔表示时的数字。 ---------------------四十年来家国,三千里地山河,凤阁龙楼连霄汉,玉树琼枝作烟箩。几曾识干戈? 使用System.Guid .NewGuid ().ToString ();作为文件名也可 System.DateTime.Now.ToString("yyyyMMdd")+System.Environment.TickCount.ToString()或System.Guid.NewGuid().ToString()都可以试试。 楼上的人说加入时间参数到文件名,尽管机率小,并不表示没有重复的可能。我的想法是,先遍历判断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;} 用System.Guid.NewGuid().ToString()不会重复 DateTime now =DateTime.Now;string newname=now.ToString("yyyymmddhhmmss");这句话得到的直接是形如20050410121212.jpg这样的文件名两句话的东西居然让我写了二三十行!!脸红!!!!!! C# CRC16能不能靠一下方法获得验证码? C#读取XML数据的问题~ 有關繼承和多載問題? 关于sql数据库连接问题 大家看看能实现这种效果吗? Flash网络对战游戏+C# 问题 在线等~~~~~ 控建的逻辑问题 如何用C#在一个字符串中以回车为分隔标志分段读取? 急求C#,将一台计算机加入域的程序。 要做一个旅游景区订票的系统,有点疑问求大神帮助下 web可否操纵windows服务。 我要动态创建类数组 怎么弄啊?那个大哥给我指教一下
DateTime now =DateTime.Now;
string newname=now.ToString();
newname=newname.Replace(" ","");
newname=newname.Replace("-","");
newname=newname.Replace(":","");
写的不好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;
}
// 此属性的值为自 0001 年 1 月 1 日午夜 12:00 以来所经过时间以 100 毫微秒为间隔表示时的数字。
---------------------
四十年来家国,三千里地山河,凤阁龙楼连霄汉,玉树琼枝作烟箩。几曾识干戈?
System.Guid .NewGuid ().ToString ();作为文件名也可
或
System.Guid.NewGuid().ToString()
都可以试试。
//假如你把文件名放在一个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;
}
string newname=now.ToString("yyyymmddhhmmss");
这句话得到的直接是形如20050410121212.jpg
这样的文件名
两句话的东西居然让我写了二三十行!!
脸红!!!!!!