Page 1 of 1
Copiar Ficheros entre Carpetas
Posted: Tue Nov 25, 2008 1:10 pm
by cgomez
Hola Esteban, mi nombre es Carmen
he probado lo q tu me has puesto en mi funcion de la siguiente forma
static function SeleccionarFicheroPDF(mant)
local cFicheroOrigen
local cDirectorio:= "C:\" + "Productos" + "\" + alltrim((Mant:ctbfpdb)->codpdt)
cFicheroOrigen:=cGetFile( "C:\" + "PDF" + "\*.pdf")
if !lIsDir( cDirectorio )
MakeDir( cDirectorio )
end if
COPY FILE (cFicheroOrigen) TO (cDirectorio)
return
me da el siguiente error
(DOS Error 5) BASE/2012 Create error:C:\Productos\P110767
la idea es poder elegir de la carpeta PDF el fichero y al seleccionar dicho fichero(con dobleclick,por ej.) me lo copie a la carpeta q me crea q en este caso es P110767
gracias y un saludo
Posted: Tue Nov 25, 2008 1:40 pm
by jrestojeda
Carmen
COPY FILE (cFicheroOrigen) TO (cDirectorio)
No está bien asi.
cFecheroOrigen debe contener tambien el Path con el nombre del archivo, del mismo modo cDirectorio debe tener el Path destino con el archivo destino.
Ejemplo: Si el Archivo es "MiFile.txt" y está en "C:\CARPETA" cFicheroOrigen debe tener todo cargado, "C:\CARPETA\MiFile.txt"
Prueba MsgInfo(cFicheroOrigen) a ver que es lo que contiene la variable.
Yo en ese caso lo hago asi:
Code: Select all
cOrigen:="C:\CARPETA"
COPY FILE (cOrigen"\MiFile.txt") TO (cDirectorio+"\MiFile.txt")
Espero haber sido más claro esta vez.
Carmen por favor responde sobre este mismo post, asi no se generan varios post del mismo tema. De esta foema es más fácil llevar el hilo del post.
Saludos.
Posted: Tue Nov 25, 2008 4:22 pm
by cgomez
Esteban
la solucion para q me lo copie ha sido esta
COPY FILE (cFicheroOrigen) TO (cDirectorio+"\prueba.pdf")
eso solucionado, pero claro me copia ese fichero en concreto(prueba.pdf), necesitaria de la ruta de cFicheroOrigen sacar el nombre del fichero.pdf y me lo copiara en la carpeta destino, tal q asi:
COPY FILE (cFicheroOrigen) TO (cDirectorio+"\nombrefichero.pdf")
Posted: Tue Nov 25, 2008 4:31 pm
by jrestojeda
Carmen,
Mira esto:
Code: Select all
// SELECCIONO DEL DISCO UN ARCHIVO BMP //
Function SelFile(oBmp,vFot,oDlg1)
vFot:=cGetFile32("BMP | *.Bmp","Seleccione un archivo",1,,,.t.)
oBmp:SetBMP("",vFot)
oBmp:Reload("",vFot)
oBmp:Refresh()
oDlg1:Update()
oDlg1:Refresh()
Return nil
//
La función es llamada de la siguiente manera en un botón:
Code: Select all
REDEFINE SBUTTON Btn3 ID 202 OF oDlg1 RESOURCE "ACEPTAR" BRUSH oBrush1;
ACTION SelFile(oBmp,@vFot,oDlg1);
PROMPT "Imagen" TEXT 4 W97;
TOOLTIP "Cargar una imagen" FONT oFont1
"vFot" es la variable que contiene el nombre del archivo.
Prueba con este ejemplo para armar lo que necesitas.
Espero te sirva.
Saludos, Esteban.
Posted: Tue Nov 25, 2008 5:13 pm
by cgomez
Esteban
ya me lo copia perfectamente, pero no logro borrarlo de la carpeta origen
la funcion ha quedado asi
static function SeleccionarFicheroPDF(mant)
local cFicheroOrigen
local cFicheroDestino:="C:\" + "Productos" + "\" + alltrim((Mant:ctbfpdb)->codpdt)
local cNombreFichero:=""
/// Seleccionamos Fichero Origen
cFicheroOrigen:=cGetFile32("C:\" + "PDF" + "\*.pdf", "Seleccione un archivo",1,,,.t.)
/// Creamos la carpeta si no existe
if !lIsDir( cFicheroDestino )
MakeDir( cFicheroDestino )
end if
///Guardamos el nombre del Fichero
cNombreFichero:=substr(cFicheroOrigen,len(alltrim( "C:\" + "PDF"+"\" )))
///Copiamos el fichero en la carpeta de destino
COPY FILE (cFicheroOrigen) TO (cFicheroDestino+cNombreFichero)
return
Posted: Tue Nov 25, 2008 5:27 pm
by jrestojeda
Carmen,
Para borrarlo usa la función Ferase(cFicheroOrigen)
Donde cFicheroOrigen contiene todo el Path + en nombre del archivo.
Esta función Ferase(Archivo) a mi me funciona perfecto para borrar un archivo.
En el caso que no te funcione tambien prueba Ferase(&cFicheroOrigen).
Nota:
Code: Select all
local cFicheroDestino:="C:\" + "Productos" + "\" + alltrim((Mant:ctbfpdb)->codpdt)
local cNombreFichero:=""
/// Seleccionamos Fichero Origen
cFicheroOrigen:=cGetFile32("C:\" + "PDF" + "\*.pdf", "Seleccione un archivo",1,,,.t.)
Quedaría quizá más prolijo escribirlo asi:
Code: Select all
local cFicheroDestino:=CurDrive()+ ":\Productos\" + alltrim((Mant:ctbfpdb)->codpdt)
local cNombreFichero:=""
/// Seleccionamos Fichero Origen
cFicheroOrigen:=cGetFile32(CurDrive()+ ":\PDF\*.pdf", "Seleccione un archivo",1,,,.t.)
De esta forma no forzamos la letra del disco "C" y lo haces más flexible.
CurDrive() es la función que devuelve la letra del disco sobre el cual se está trabajando.
Espero te sirva.
Saludos, Esteban.
Posted: Tue Nov 25, 2008 5:35 pm
by cgomez
Hola Esteban
ya me lo hace todo!!!!! me lo copia y me lo borra de la carpeta origen.
muchas gracias por tu ayuda,seguire preguntandote,jeje
Un saludo
Posted: Tue Nov 25, 2008 5:46 pm
by jrestojeda
No hay de que...
Para eso estamos, yo personalmente recibí muchísima ayuda en este foro.
Saludos, desde Argentina, Esteban.