FoxPro/Visual FoxPro - Renombrar archivos

   
Vista:

Renombrar archivos

Publicado por carlos (9 intervenciones) el 08/06/2013 06:59:07
Hola a todos, tengo la siguiente situacion:

tengo una carpeta que tiene 20 archivos nombrados de la siguiente manera:
ab000005.txt
bc000005.txt
dc000005.txt
ab000008.txt
bc000008.txt
dc000008.txt
ab000010.txt
bc000010.txt
dc000010.txt

y asi sucesivamente, la idea es cambiarles el nombre así, por ejemplo todos los archivos que terminan en 5 se cambiarian por 30, los de 8 se cambiarian por 55 y asi sucesivamente.
ab000030.txt
bc000030.txt
dc000030.txt
ab000055.txt
bc000055.txt
dc000055.txt

Les agradezco de antemano la colaboración prestada. Gracias
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

Renombrar archivos

Publicado por Fidel (558 intervenciones) el 08/06/2013 17:19:08
El siguiente código te da una idea de cómo hacerlo.
En este caso se supone que la extensión es ".txt", pero se puede agregar un combo con extensiones posibles.
También, en lugar de los cuadros de texto, se puede hacer una matriz de cambios.

Nota: guarda una copia de respaldo de los archivos que quieres renombrar.

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
* Controles para ingreso y muestra de datos
* ----------------------------------------------------------------
* Text1: Consignar Ruta de archivos
* Text2: Indicar valor buscado (04, 00010, etc) (Character)
* Text3: Indicar Valor de reemplazo (030, 021, etc)
* List1: Mostrar archivos encontrados
*----------------------------------------------------------------
* Funciones Especiales Utilizadas: Adir(), JustStem(),JustExt()
*----------------------------------------------------------------
LOCAL lcRuta,lcReemp,lcMasc,lnMasc,;
	nFiles,lcName,lcOld,lcNew,lcExten
 
lcRuta=ALLTRIM(Thisform.Text1.value)  && Ruta en que se encuentran
lcMasc=ALLTRIM(thisform.Text2.Value)  && Máscara que se desea reemplazar
lcReemp=ALLTRIM(thisform.text3.Value) && Valor de Reemplazo de máscara
 
IF EMPTY(lcMasc).or.empty(lcReemp).or.Empty(lcRuta)
	MESSAGEBOX("Faltan datos")
	RETURN
ENDIF
 
lnmasc=LEN(lcMasc)
 
nFiles=ADIR(gafiles,ADDBS(lcRuta)+"*"+lcMasc+".txt")
IF EMPTY(nfiles)
	MESSAGEBOX("No se encontraron coincidencias")
	RETURN
ENDIF
WITH thisform.list1
	.clear
	FOR i=1 TO nFiles
		.AddItem(gafiles[i,1])
	NEXT
ENDWITH
nMess=MESSAGEBOX("Desea renombrar los archivos?",4,"Mensaje")
IF nMess#6
	thisform.list1.Clear
	RETURN
ENDIF
 
&& Renombrar Archivos
FOR i=1 TO ALEN(gafiles,1)
	lcName=JUSTSTEM(gafiles[i,1])
	lcExten=JUSTEXT(gafiles[i,1])
	lcOld=ADDBS(lcRuta)+gafiles[i,1]
	lcNew=ADDBS(lcRuta);
		+LEFT(lcName,LEN(lcName)-lnMasc);
		+lcReemp;
		+"."+lcExten
	RENAME (lcOld) TO (lcNew)
NEXT
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

Renombrar archivos

Publicado por carlos cenrueda@yahoo.com (9 intervenciones) el 10/06/2013 01:16:48
Hola Fidel, gracias por la colaboración. Voy a trabajarlo.
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