FoxPro/Visual FoxPro - copiar archivos de una carpeta a otra, todos excepto algunos

 
Vista:
sin imagen de perfil
Val: 5
Ha disminuido su posición en 13 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

copiar archivos de una carpeta a otra, todos excepto algunos

Publicado por Mina (23 intervenciones) el 11/03/2017 20:34:13
Buenas tardes

Programo en VFP9. Estoy usando las siguientes líneas de código para copiar archivos de una capeta a otra

Carpeta1="c:\uno"
Carpeta2="c:\dos"
copy file &Carpeta1 to &Carpeta2

me funciona bien, pero quisiera excluir algunos archivos..
No puse que copiara de uno por uno porque son bastantes y solo algunos de ellos no quiero que copie,
¿cómo puedo hacer para copiar todos, menos 2 por ejemplo.

De antemano gracias por su ayuda
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

copiar archivos de una carpeta a otra, todos excepto algunos

Publicado por Fidel José (657 intervenciones) el 12/03/2017 17:33:16
TEndrías que usar la función ADIR y excluir los que coincidan con algún criterio.
Ten en cuenta que ADir() no trae la capeta en la que levanta los archivos.
Algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
lcFolder_Source = "C:\UNO"
lcFolder_Target = "C:\DOS"
lcList_Exclude = ",TANGO1.XLS,PAJARO.DBF,MIFILE.PDF,"
 
lnFiles = Adir(laFiles,Addbs(lcFolder_Source)+"*.*")
 
FOR i = 1 to m.lnfiles
	IF AT(CHR(44)+laFiles[i,1]+CHR(44),m.lcList_Exclude) = 0
		lcFile_Source = ADDBS(m.lcFolder_Source)+laFiles[i,1]
		lcFile_Targe = ADDBS(m.lcFolder_Target) + laFiles[i,1]
		COPY FILE &lcFile_Source TO &lcFile_Target
	ENDIF
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
Imágen de perfil de Alan
Val: 59
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

copiar archivos de una carpeta a otra, todos excepto algunos

Publicado por Alan (22 intervenciones) el 23/05/2019 06:12:32
No me funciona me sale el error que adjunto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
lcFolder_Source = "D:\SFS_v1.2\sunat_archivos\sfs\DATA"
lcFolder_Target = "C:\Users\Serviciosti.si\Documents\Macro Facturador Sunat\Archivos PLANOS"
lcList_Exclude = ",TANGO1.XLS,PAJARO.DBF,MIFILE.PDF,"
 
lnFiles = Adir(laFiles,Addbs(lcFolder_Source)+"*.*")
? lnFiles
 
FOR i = 1 to m.lnfiles
	IF AT(CHR(44)+laFiles[i,1]+CHR(44),m.lcList_Exclude) = 0
		lcFile_Source = ADDBS(m.lcFolder_Source)+laFiles[i,1]
		lcFile_Target = ADDBS(m.lcFolder_Target) + laFiles[i,1]
		COPY FILE &lcFile_Source TO &lcFile_Target
	ENDIF
NEXT
error-line-too-long
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
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

copiar archivos de una carpeta a otra, todos excepto algunos

Publicado por Fidel José (657 intervenciones) el 23/05/2019 14:29:03
No veo en qué línea te salta ese error.
No obstante hay que tener en cuenta que COPY FILE es un comando muy antiguo y tiene problemas con las rutas o nombres de archivos con espacios y ciertos caracteres.

Sugiero que pruebes lo siguiente, recurriendo a ScriptingFileSystemObject.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
LOCAL loFso as Object
loFso = NEWOBJECT("Scripting.FileSystemObject")
 
lcFolder_Source = "D:\SFS_v1.2\sunat_archivos\sfs\DATA"
lcFolder_Target = "C:\Users\Serviciosti.si\Documents\Macro Facturador Sunat\Archivos PLANOS"
lcList_Exclude = ",TANGO1.XLS,PAJARO.DBF,MIFILE.PDF,"
 
lnFiles = Adir(laFiles,Addbs(lcFolder_Source)+"*.*")
? lnFiles
FOR i = 1 to m.lnfiles
	IF AT(CHR(44)+laFiles[i,1]+CHR(44),m.lcList_Exclude) = 0
		lcFile_Source = ADDBS(m.lcFolder_Source)+laFiles[i,1]
 
		*lcFile_Target = ADDBS(m.lcFolder_Target) + laFiles[i,1]
 
		* COPY FILE &lcFile_Source TO &lcFile_Target
		loFso.CopyFile(m.lcFile_Source, ADDBS(m.lcFolder_Target))
 
	ENDIF
 
NEXT
loFso = null
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Alan
Val: 59
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

copiar archivos de una carpeta a otra, todos excepto algunos

Publicado por Alan (22 intervenciones) el 24/05/2019 03:07:38
Estimado agradezco tu solución, lo que quisiera es mover archivos de una carpeta a otra, cuya fecha de modificación sea menor a una que ingresare a traves de un text.

Quiero hacer un boton que mueva todos los archivos de una carpeta cuya fecha de modificación es menor a una dada desde un textbox
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
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

copiar archivos de una carpeta a otra, todos excepto algunos

Publicado por Fidel José (657 intervenciones) el 24/05/2019 16:18:31
Hola Alan:
Fijate en el archivo adjunto. Ahí tenés un conjunto de funciones de las cuales tenés que atacar la primera que aparece.
Ej: Select_files_toMove(lcMask,lcFolderSource,lcFolderTarget,ltFechaHora)
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