FoxPro/Visual FoxPro - Como crear carpetas en el Sistema Operativo Asegurando que lo HAGA EN MAYUSCULAS? desde VFP (MD)

 
Vista:

Como crear carpetas en el Sistema Operativo Asegurando que lo HAGA EN MAYUSCULAS? desde VFP (MD)

Publicado por Rafael M (1 intervención) el 23/05/2019 19:13:24
Desde VFP se crean archivos y carpetas en Windows, con el comando MD, sin embargo caprichósamente el sistema operativo, las puede crear en Mayúsculas o minúsculas. Cómo asegurar que siempre lo haga en MAYUSCULAS?

Si alguien lo sabe, agradezco la respuesta. Gracias.

Atte,

RaM
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Como crear carpetas en el Sistema Operativo Asegurando que lo HAGA EN MAYUSCULAS? desde VFP (MD)

Publicado por Fidel José (657 intervenciones) el 23/05/2019 22:44:20
Te muestro un procedure en el que puedes lograr eso, basándonos en Scripting.FileSystemObject

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar