C#

C# フォルダ作成時、同名フォルダがあれば連番を振る

More than 1 year has passed since last update.

Windowsでは新しいフォルダーを作成した時、既に「新しいフォルダー」という名前のフォルダーがあれば

「新しいフォルダー (2)」というように2から連番が振られる

同じようなことをC#でやってみた

※コメントより賢いやり方を教えていただきました

 ありがとうございます(●´ω`●)

~スマートな方~

public void CreateDirectoryInSequence(string path)

{
int i = 2;
var targetPath = path;
while (Directory.Exists(targetPath))
{
targetPath = $"{path} ({i++})";
}
Directory.CreateDirectory(targetPath);
}

~もともと書いてたやつ~

        /// <summary>

/// パスを指定してディレクトリを作成する
/// <para>既に同名ディレクトリが存在するなら連番を振る</para>
/// </summary>
/// <param name="path"></param>
public void CreateDirectoryInSequence(string path)
{
int i = 2;
while (Directory.Exists(path))
{
if (i == 2)
{
path += $" ({i})";
}
else
{
var start = path.LastIndexOf('(') + 1;
var count = path.LastIndexOf(')') - start;
int index;
var res = int.TryParse(path.Substring(start, count), out index);
if (res)
{
index++;
path = path.Remove(start, count);
path = path.Insert(start, index.ToString());
}
else
{
return;
}
}
i++;
}
Directory.CreateDirectory(path);
}

よくありそうなネタだし既出かもれない(´・ω・`)