如果并发操作比较多的话,就会产生文件重名的现象。我们可以将日期精确到1/10000000秒,这样的话重名的可能性就很小了。
但是有可能的话,还是用单例来生成ID是较好的选择。
public static class UniqueIDUtil { #region GetDTID /// <summary> /// 获取DateTime字符串 /// yyyyMMddHHmmssfffffff /// </summary> /// <returns></returns> public static string GetDTID() { var dt = DateTime.Now; return string.Format("{0:yyyyMMddHHmmssfffffff}", dt); } #endregion #region New32GUID public static string New32GUID() { return string.Format("{0:N}", Guid.NewGuid()); } #endregion #region NewDTGUID public static string NewDTGUID() { var dt = DateTime.Now; return string.Format("{0:yyyyMMddHHmmssfffffff}{1:N}", dt, Guid.NewGuid()); } #endregion }