[英]How do I create a random image name in C#?
當我添加圖片時,我希望它創建一個新的隨機文件名,因為如果你添加一個具有相同名稱的圖片,它將只是覆蓋。
這是一個內置的方法Path.GetRandomFileName
。 它返回一個隨機文件夾名稱或文件名。
GetRandomFileName方法返回加密強大的隨機字符串,可用作文件夾名稱或文件名。 與GetTempFileName不同,GetRandomFileName不會創建文件。 當文件系統的安全性至關重要時,應該使用此方法而不是GetTempFileName。
如果你想使用擴展名(例如.jpg
而不是生成),你可以使用另一個輔助方法Path.ChangeExtension
:
string extension = ".jpg";
string fileName = Path.ChangeExtension(
Path.GetRandomFileName(),
extension
);
System.IO.Path.GetRandomFileName獲取保證唯一的文件名。
由於您想保存圖片,您可以使用GUID作為文件名:
string filename = Path.Combine(Path.GetTempPath(), Guid.NewGuid() + ".jpg");
當我需要另一個文件擴展名而不是.tmp(當你通過GetTempFileName創建文件時獲取文件擴展名)時,我總是這樣做。
當然你可以通過GetTempFileName創建文件,然后重命名它們,但是你必須再次檢查是否存在具有新名稱的文件...
您可以生成Guid並將其用於您的文件名。 雖然這意味着文件不是人類可讀的,並且沒有關於內容是什么的信息。
您可以使用當前時間構建它。
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".png";
上面的示例將使用年,月,日,小時,分鍾,秒和分數秒來格式化當前時間。 (如果你希望它減少到1,則可以用較少的f
s指定秒的分數。)。
使用GUID命名您的圖像
對於C#,您可以使用: System.Guid.NewGuid().ToString()
也許您正在尋找GetTempFileName
。
我會敬畏 。 使用原始文件名+ DateTime.Now.ToString("yyyyMMddHHmmssffff");
。
我也會選擇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();
}
將為您提供精細,可重復使用的解決方案。 把它放到你的“我最偉大的時刻的集合” - 類庫中,你很高興。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.