Описание функции
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