C# - 将数字附加到要保存的文件

use*_*ser 7 .net c# filenames sequence

我创建了一个截图程序,一切都很好.唯一的问题是,我不知道如何制作它,所以屏幕截图是附加数字保存的.

示例:屏幕截图1,屏幕截图2,屏幕截图3,屏幕截图4等.

显然,这可以应用于其他正在保存的文件.有任何想法吗?谢谢.

Rex*_*x M 11

这是我经常用于这种情况的方法.只需传入一个像"截图"这样的字符串,它会找到"Screenshot [number]"格式的最低可用文件名(如果还没有,则只显示"截图"):

private string GetUniqueName(string name, string folderPath)
{
    string validatedName = name;
    int tries = 1;
    while (File.Exists(folderPath + validatedName))
    {
        validatedName = string.Format("{0} [{1}]", name, tries++);
    }
    return validatedName;
}
Run Code Online (Sandbox Code Playgroud)

(注意:这是一个略微简化的版本,不考虑文件扩展名).

  • 我会使用`Path.Combine(folderPath,validatedName)`来代替`folderPath + validatedName`. (3认同)