PROCEDURE CREAR_CARPETA
* -----------------------
LPARAMETERS tcCarpeta,tnFlag
* tcCarpeta debe ser una ruta completa
* ej: "c:\Users\Fidel\Documents\NUEVA CARPETA"
* tnFlag: 0=Upper (default) 1=Lower 2=Proper
*
* RETORNA: 0 = La carpeta ya existe
* 1 = Se creó la carpeta
* -1 = la carpeta no existe y no fué creada
* -2 = No se envió el nombre de la carpeta
*----------------------------------------------------
TRY
LOCAL loex as Exception,;
lofso as Object,;
lnREsult,;
lcMessage,;
lcFolder
lnResult = 0
DO WHILE .t.
IF VARTYPE(m.tcCarpeta)#"C" OR EMPTY(m.tcCarpeta)
lcMessage = "No consignó la carpeta a crear"
lnResult = -2
EXIT
ENDIF
tcCarpeta = ALLTRIM(m.tcCarpeta)
IF RIGHT(m.tcCarpeta,1) = CHR(92)
tcCarpeta = LEFT(m.tcCarpeta,LEN(m.tcCarpeta)-1)
ENDIF
lnLastBar = AT(CHR(92),m.tcCarpeta,OCCURS(CHR(92),m.tcCarpeta))
lcFolder = SUBSTR(m.tcCarpeta,m.lnLastBar+1)
tcCarpeta = SUBSTR(m.tcCarpeta,1,m.lnLastBar - 1)
IF VARTYPE(m.tnFlag)#"N"
tnFlag = 0
ENDIF
IF !BETWEEN(m.tnFlag,0,2)
tnFlag = 0
ENDIF
DO CASE
CASE m.tnFlag = 0
lcFolder = UPPER(m.lcFolder)
CASE m.tnFlag = 1
lcFolder = LOWER(m.lcFolder)
CASE m.tnFlag = 2
lcFolder = PROPER(m.lcFolder)
ENDCASE
tcCarpeta = ADDBS(m.tcCarpeta)+m.lcFolder
* Crear el objeto FSO
loFso = NEWOBJECT("Scripting.FileSystemObject")
* Si la carpeta no existe, crear carpeta
IF !loFso.FolderExists(m.tcCarpeta)
loFso.CreateFolder(m.tcCarpeta)
lnResult = IIF(loFso.FolderExists(m.tcCarpeta),1,-1)
ENDIF
EXIT
ENDDO
CATCH TO loex
loex.UserValue = PROGRAM()
* ShowError(loEx) && rutina que muestra el error
lnResult = -1
FINALLY
loFso = null
IF !EMPTY(m.lcMessage)
MESSAGEBOX(m.lcMessage,0,PROGRAM())
ENDIF
ENDTRY
RETURN m.lnResult
ENDPROC