为了避免重名现象,上传文件按以下的规则命名:上传时的年+月+日+时+分+秒+随机数为了确保同一时间上传的文件不重名,则随机数不能相同,即随机数的种子不能相同。以下为取随机数种子以及生成文件名的代码:
System.Random r1 = new Random(Global.GetSeed());filename = System.DateTime.Now.ToString().Replace( " - " , "" ).Replace( " : " , "" ).Replace( " " , "" ) + r1.Next( 10000 ).ToString();为避免同一时间种子相重:在global.cs里为取种子的代码加锁,使同一时间只能有一个用户取得种子,之后种子自加
private static int seed = 1 ; public static int GetSeed() { return IncrSeed(); } private static int IncrSeed() { try { System.Threading.Monitor.Enter(seed); seed++; if(seed==1000) seed=1; } finally { System.Threading.Monitor.Exit(seed); } return seed; }