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