【.NET/C#】重複しないファイル名を発行する
2024-2-16 | .NET
.NETで重複しないファイル名を発行したい!
概要
.NETで重複しないファイル名を発行する手順を掲載する。
仕様書
環境
- .NET 8
手順書
重複しないファイル名を取得してコンソールに出力する例。
using System;
using System.IO;
namespace UniqueFileNames
{
internal class Program
{
static string GetUniqueFileName(string path, string ext = "")
{
string result = "";
while (result == "")
{
Guid uniqueId = Guid.NewGuid();
string guid = uniqueId.ToString()
if (ext == "")
{
result = $"{path}/{guid}";
}
else
{
result = $"{path}\/{guid}.{ext}";
}
if (File.Exists(result))
{
result = "";
}
}
return result;
}
static void Main(string[] args)
{
Console.WriteLine(GetUniqueFileName("c:/neko_gazou", "jpg"));
}
}
}
実行すると下記のように出力される。
c:/neko_gazou/b7153def-f8ef-486f-8e48-c6c1e9eafe1d.jpg
Guid.NewGuid()
でグローバルユニークIDを作って、パスと拡張子をガッチャンコして後に、実際にそのファイルが存在するか確認する。
重複はめったにしないんはずなんだけども、万一ファイルが存在した場合は再度別のグローバルユニークIDを作って繰り返し。
まとめ(感想文)
ユーザーがアップロードした画像の保存とかに使えるかもね!