FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
problema con copyfile
Hola, ya lei varios hilos nuevos y viejos y llegue a la conclusion de que para copear un archivo de un directorio a otro se puede utilizar esto
procedure TForm1.Button1Click(Sender: TObject); Var f:TFileStream; begin f:=TFileStream.Create('c:\musica\001\depechemode.jpg',fmOpenRead or fmShareExclusive); copyfile(pchar('c:\musica\001\depechemode.jpg'),pchar('c:\musica\006\001.jpg'),true); f.free; end; el programa corre bien pero no copea nada,(delphi 5), GRACIAS
__________________
Mexicali |
#2
|
||||
|
||||
Hola cesarjbf.
En realidad, te basta con una sola linea: Código:
CopyFile(PChar('C:\Temp\Copia.txt'),PChar('C:\Temp\log\Copia.txt'),TRUE);
__________________
Saludos, Peter Investment |
#3
|
|||
|
|||
Muchas Gracias,
Funciono!!
__________________
Mexicali |
#4
|
|||
|
|||
El metodo funciono pero como hago para que reescriba un archivo que ya existe,
por ejemplo una foto, mismo nombre pero diferente imagen.
__________________
Mexicali |
#5
|
||||
|
||||
Como primero, te recomiendo que accedas a la ayuda antes que al foro, pues la solución la tienes al alcance de tu mano.
El tercer parámentro del CopyFile que tu estas pasando en true, significa: "Specifies how this operation is to proceed if a file of the same name as that specified by lpNewFileName already exists. If this parameter is TRUE and the new file already exists, the function fails. If this parameter is FALSE and the new file already exists, the function overwrites the existing file and succeeds." Digamos que si pasas ese parámetro como True, sobreescribirá el archivo en el caso de que exista. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#6
|
|||
|
|||
El método falla porque la cadena pasa con saltos de pagina. La recomendación es generar un código que limpie la cadena antes de pasarla si es que estan usando el CopyFile de forma dinámica, por ejemplo si obtienen el archivo de un Opendialog:
En lo particular utilice algo muy rustico para limpiar la cadena: function Tfrm.DeleteLineBreaks(const S: string): string; var Source, SourceEnd: PChar; begin Source := Pointer(S) ; SourceEnd := Source + Length(S) ; while Source < SourceEnd do begin case Source^ of #10: Source^ := #32; #13: Source^ := #32; end; Inc(Source) ; end; Result := S; end; .... y la mando a llamar de la siguiente forma. DeleteLineBreaks(ExtractFileName(edt_cer.Text)); y esta solucionado... no es nada de permisos ni nada por el estilo... espero les sirva y si alguien le puede hacer una mejor por favor... Saludos |
#7
|
||||
|
||||
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.
Y recuerda: Además has contestado a un mensaje de hace 9 años |
|
|
|