Описание функции


GetCopyName

Получить путь к несуществующему файлу, при необходимости добавив индекс.

GetCopyName(Path$ [, Mode = 0 [, Text$ = "Copy" ]])

Параметры

Path$ Путь к файлу, не папке.
Mode Режим:
0 - добавить "Copy", как делает Windows
1 - добавить индекс от 1 и более
Text$ Для режима 0 задать текст на родном языке, например "копия"

Возвращаемое значение

Возвращает несуществующий путь, позволяя уверенно создать новый файл

Примечания

Режим 0 наверняка имеет WinAPI-вариант, но текущая функция кроссплатформенная и возможность индекса.

Пример

; AZJIO
Procedure.s GetCopyName(Path$, Mode = 0, Text$ = "Copy")
    Protected i, DirFile$, Ext$
    If FileSize(Path$) >= 0
        DirFile$ = GetPathPart(Path$) + GetFilePart(Path$, #PB_FileSystem_NoExtension)
        Ext$ = GetExtensionPart(Path$)
        i = 0
        If Mode
            Repeat
                i + 1
                Path$ = DirFile$ + "_" + i + "." + Ext$
            Until FileSize(Path$) < 0
        Else
            Repeat
                i + 1
                If i = 1
                    Path$ = DirFile$ + " " + Text$ + "." + Ext$
                Else
                    Path$ = DirFile$ + " " + Text$ + " (" + i + ")." + Ext$
                EndIf
            Until FileSize(Path$) < 0
        EndIf
    EndIf
    ProcedureReturn Path$
EndProcedure


Define file$
file$ = GetCopyName("C:\path\file.txt", 0)

If CreateFile(0, file$)
    CloseFile(0)
EndIf