当我添加图片时,我希望它创建一个新的随机文件名,因为如果你添加一个同名的图片,它就会覆盖。
答案 0 :(得分:7)
这是一种内置方法Path.GetRandomFileName
。它返回一个随机文件夹名称或文件名。
GetRandomFileName方法返回一个 密码学强,随机 可以用作a的字符串 文件夹名称或文件名。不像 GetTempFileName,GetRandomFileName 不创建文件。当。。。的时候 您的文件系统的安全性是 最重要的是,应该使用这种方法 而不是GetTempFileName。
如果您想使用自己的扩展程序(例如.jpg
而不是已生成),则可以使用其他辅助方法Path.ChangeExtension
:
string extension = ".jpg";
string fileName = Path.ChangeExtension(
Path.GetRandomFileName(),
extension
);
System.IO.Path.GetRandomFileName 获取保证唯一的文件名。
答案 1 :(得分:5)
如果您想保存图片,可以使用GUID作为文件名:
string filename = Path.Combine(Path.GetTempPath(), Guid.NewGuid() + ".jpg");
当我需要另一个文件扩展名而不是.tmp时,我总是这样做(当你通过GetTempFileName创建文件时会得到这些文件)。
当然你可以通过GetTempFileName创建文件,然后重命名它们,但是你必须再次检查是否存在具有新名称的文件......
答案 2 :(得分:4)
您可以生成Guid并将其用于您的文件名。虽然这意味着文件不是人类可读的,并且没有关于内容是什么的信息。
答案 3 :(得分:3)
您可以使用当前时间构建它。
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".png";
上面的示例将使用年,月,日,小时,分钟,秒和分数秒来格式化当前时间。 (如果希望将其缩小为1,则可以使用较少的f
指定秒的分数。)。
答案 4 :(得分:3)
使用GUID命名您的图像
对于C#,您可以使用:System.Guid.NewGuid().ToString()
答案 5 :(得分:1)
也许您正在寻找GetTempFileName
。
答案 6 :(得分:0)
我会选择awe。使用原始文件名+ DateTime.Now.ToString("yyyyMMddHHmmssffff");
。
答案 7 :(得分:0)
我也会使用GUID解决方案。
这里有一些我经常使用的代码:
public static string GetRandomFileName(string extension)
{
StringBuffer sb = new StringBuffer(Guid.NewGuid().ToString());
if (!string.IsNullOrEmpty(extensions))
{
sb.Append(".");
sb.Append(extension);
}
return sb.ToString();
}
为您提供优质,可重复使用的解决方案。把它放到你的“我最伟大的时刻的集合” - 类库中,你很高兴。