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


ForceDirectories

Создает путь, когда для этого требуется создать несколько папок.

ForceDirectories(Dir.s)

Параметры

Dir.s Путь к папке, который нужно воссоздать

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

Успех:Возвращает #True, путь создан или существует
Ошибка:Возвращает #False, путь не создан, нет доступа или другие причины

Пример

EnableExplicit

; ts-soft
; https://www.purebasic.fr/english/viewtopic.php?p=317830#p317830
Procedure ForceDirectories(Dir.s)
    Static tmpDir.s, Init
    Protected result

    If Asc(Dir)
        If Not Init
            tmpDir = Dir
            Init = #True
        EndIf
        If (Right(Dir, 1) = #PS$)
            Dir = Left(Dir, Len(Dir) - 1)
        EndIf
        If (Len(Dir) < 3) Or FileSize(Dir) = -2 Or GetPathPart(Dir) = Dir
            If FileSize(tmpDir) = -2
                result = #True
            EndIf
            tmpDir = ""
            Init = #False
            ProcedureReturn result
        EndIf
        ForceDirectories(GetPathPart(Dir))
        ProcedureReturn CreateDirectory(Dir)
    Else
        ProcedureReturn #False
    EndIf
EndProcedure

Debug ForceDirectories(GetUserDirectory(#PB_Directory_Programs))