我看到了一些随机点名的建议,包括使用档案。
System.IO.Path.GetRandomFileName()
或
System.Guid
并评估档案延期。
我的问题是: 产生独一无二的档案名称的最快方式是什么?
我看到了一些随机点名的建议,包括使用档案。
System.IO.Path.GetRandomFileName()
或
System.Guid
并评估档案延期。
我的问题是: 产生独一无二的档案名称的最快方式是什么?
GU GU 极快, ,因为执行保障 视窗可在100-nanosecond timepan中生成至少16,384千兆克的全球数据系统。 (正如其他人指出的,光彩并不保证,只允许这样做。) 然而,古董会的一代人实际上迅速。 实际 任何网络的任何档案系统发生碰撞的可能性都很低。 足够安全的是,尽管检查是否掌握了这一档案名称是最佳做法,但实际上,你甚至永远不需要这样做。
因此,除储蓄本身外,你没有再研究I/O业务;0.2毫秒(试验机器)生成名称。 很快。
页: 1
我实际上可以说,这是否是
我撰写了20年的档案系统司机,说Rex是正确的。 编写指南的速度要快得多,因为它比寻找独一无二的档案名称要少得多。 GetTempFileName实际上制造了一个档案,这意味着它必须通过整个档案系统驾驶员排队(他知道有多少电话和改用纸浆)。 GetRandom 象这种声音一样,越快越好,但我相信,国际统一私法协会的呼吁会更快。 人们不认识到的是,即使为了证明档案的存在而进行测试,也需要通过驾驶员队伍发出完整的呼吁。 这实际上导致公开、有属性和接近(至少3次电话,视级别而定)。 事实上,它至少需要20个功能电话,并且要向摩托车过渡。 两性平等与发展全球倡议在大多数目的中都充分体现了独特性。
一边说,对错误的检查过于仓促。 如果假设不正确,守则应设计成坠毁,或处理例外情况。 它比每次检查每个功能的错误要快得多,才能推动和普及并处理例外情况。
如果你控制档案存放地的目的地,而且只有一个过程和线索要文件,只是将一些自动加油号码贴在基名称上。
如果你不控制目的地,或需要多管齐下,则使用统一信息数据库。
在每个档案中使用斜线和水泥。
如果你控制该名录,你可以根据最后标准来命名你的档案:
DirectoryInfo info = new DirectoryInfo(directoryPath);
long uniqueKey = info.LastWriteTime.Ticks+1L;
string filename = String.Format("file{0}.txt", key);
但是,你必须检查该守则的执行情况: 我猜测建造一家名录并不免费。
我希望,这种自发性功能将有助于一个人产生一个独特的档案名称。
public string getUniqueFileName(int i, string fullpath, string filename)
{
string lstDir = fullpath.Substring(0, fullpath.LastIndexOf( \ ));
string name = Path.GetFileName(fullpath);
string path = fullpath;
if (name != filename)
path = Path.Combine(lstDir, filename);
if (System.IO.File.Exists(path))
{
string ext = Path.GetExtension(name);
name = Path.GetFileNameWithoutExtension(name);
i++;
filename = getUniqueFileName(i, fullpath, name + "_" + i + ext);
}
return filename;
}
你可以做这样的事情:
file.MoveTo(deletedfilesdir + @"" + f.Name + **DateTime.Now.ToFileTimeUtc()** + f.Extension);