объект bool не подлежит подписке - Keras

Здесь много хорошего совета. Я закончил использование метода, написанного Marc в ответом на другой вопрос . Переформатировал его немного и добавил еще один способ, чтобы сделать его немного проще использовать «со стороны». Вот результат:

private static string numberPattern = " ({0})";

public static string NextAvailableFilename(string path)
{
    // Short-cut if already available
    if (!File.Exists(path))
        return path;

    // If path has extension then insert the number pattern just before the extension and return next filename
    if (Path.HasExtension(path))
        return GetNextFilename(path.Insert(path.LastIndexOf(Path.GetExtension(path)), numberPattern));

    // Otherwise just append the pattern to the path and return next filename
    return GetNextFilename(path + numberPattern);
}

private static string GetNextFilename(string pattern)
{
    string tmp = string.Format(pattern, 1);
    if (tmp == pattern)
        throw new ArgumentException("The pattern must include an index place-holder", "pattern");

    if (!File.Exists(tmp))
        return tmp; // short-circuit if no matches

    int min = 1, max = 2; // min is inclusive, max is exclusive/untested

    while (File.Exists(string.Format(pattern, max)))
    {
        min = max;
        max *= 2;
    }

    while (max != min + 1)
    {
        int pivot = (max + min) / 2;
        if (File.Exists(string.Format(pattern, pivot)))
            min = pivot;
        else
            max = pivot;
    }

    return string.Format(pattern, max);
}

Пока только частично протестировал его, но будет обновлен, если я найду какие-то ошибки с ним. ( код Marc работает хорошо!) Если у вас возникнут какие-либо проблемы, прокомментируйте или отредактируйте или что-то еще:)

1
задан Janus Syrak 19 March 2019 в 15:23
поделиться