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
Copiar Ficheros entre Carpetas
- jrestojeda
- Posts: 543
- Joined: Wed Jul 04, 2007 3:51 pm
- Location: Buenos Aires - Argentina
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:
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.
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")
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.
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")
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")
- jrestojeda
- Posts: 543
- Joined: Wed Jul 04, 2007 3:51 pm
- Location: Buenos Aires - Argentina
Carmen,
Mira esto:
La función es llamada de la siguiente manera en un botón:
"vFot" es la variable que contiene el nombre del archivo.
Prueba con este ejemplo para armar lo que necesitas.
Espero te sirva.
Saludos, Esteban.
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
//
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
Prueba con este ejemplo para armar lo que necesitas.
Espero te sirva.
Saludos, Esteban.
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
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
- jrestojeda
- Posts: 543
- Joined: Wed Jul 04, 2007 3:51 pm
- Location: Buenos Aires - Argentina
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:
Quedaría quizá más prolijo escribirlo asi:
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.
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.)
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.)
CurDrive() es la función que devuelve la letra del disco sobre el cual se está trabajando.
Espero te sirva.
Saludos, Esteban.
- jrestojeda
- Posts: 543
- Joined: Wed Jul 04, 2007 3:51 pm
- Location: Buenos Aires - Argentina