Re: CreateDirectoryEx (crossplattform)
Verfasst: 11.01.2014 00:52
@TS-Soft: Du hattest schonmal eine "MakeDir" Prozedur gebastelt.... (schon ne weile her...
)
Dort ist als API "nur" : ExpandEnvironmentStrings_ vorhanden. Evt. ist es einfacher, nur diese Funktion crossplatform
nachzubilden (falls sie das nicht schon ist) ?

Dort ist als API "nur" : ExpandEnvironmentStrings_ vorhanden. Evt. ist es einfacher, nur diese Funktion crossplatform
nachzubilden (falls sie das nicht schon ist) ?
Code: Alles auswählen
Procedure MakeDir(Directory.s, rel2program = #False)
Protected Index = 2, count, i, length
Protected actDir.s, dir2.s
If Directory = "" : ProcedureReturn #False : EndIf
length = ExpandEnvironmentStrings_(Directory, @dir2, 0)
If length
dir2 = Space(length)
If ExpandEnvironmentStrings_(Directory, @dir2, length)
Directory = dir2
EndIf
EndIf
Directory = ReplaceString(Directory, "/", "\")
If Right(Directory, 1) <> "\" : Directory + "\" : EndIf
If FileSize(Directory) = -2 : ProcedureReturn #True : EndIf
If Left(Directory, 1) = "\"
Directory = Right(Directory, Len(Directory) -1)
EndIf
If Not Right(StringField(Directory, 1, "\"), 1) = ":"
If rel2program
Directory = GetPathPart(ProgramFilename()) + Directory
Else
Directory = GetCurrentDirectory() + Directory
EndIf
If FileSize(Directory) = -2 : ProcedureReturn #True : EndIf
EndIf
actDir = StringField(Directory, 1, "\") + "\"
count = CountString(Directory, "\")
For i = Index To count
actDir + StringField(Directory, i, "\") + "\"
If FileSize(actDir) = -2 : Continue : EndIf
CreateDirectory(actDir)
Next
If FileSize(Directory) = -2 : ProcedureReturn #True : EndIf
EndProcedure