Ir al contenido


Foto

[RESUELTO] mover archivos


  • Por favor identifícate para responder
3 respuestas en este tema

#1 marthamelo

marthamelo

    Advanced Member

  • Miembros
  • PipPipPip
  • 106 mensajes
  • LocationA Coruña

Escrito 28 junio 2011 - 11:25

Hola a todos y todas, bueno hoy tengo una duda  que ya me duele la cabeza y los dedos de buscar en la red, he encontrado información pero no me han funcionado mucho. Me explico
Tengo una aplicación en la cual quiero mover ficheros de muchos tipos de un otros lugares  a un archivo dentro de mi aplicación  entre los ficheros incluyo videos textos etc. He probado utilizando opendialog para cargar y hasta ahí todo bien pero no sé cómo hacer para guardar dentro de mi archivo cuya ruta seria (.\datos\) y luego de esa barra iría un archivo que se crea cuando edito un edit  así que seria

delphi
  1. ('.\datos\ '+edit1.text)

. También he utilizado el código que viene en trucomania  y este funciona bien cuando le doy la dirección completa incluyendo disco y todo pero no me funciona con la que yo creé de datos.


delphi
  1. function CopiaTodo(Origen,Destino : String) :
  2.   LongInt;
  3.   var
  4.     F : TShFileOpStruct;
  5.     sOrigen, sDestino : String;
  6.   begin
  7.     Result := 0;
  8.     sOrigen := Origen + #0;
  9.     sDestino := Destino + #0;
  10.     with F do
  11.     begin
  12.       Wnd  := Application.Handle;
  13.       wFunc := FO_COPY;
  14.       pFrom := @sOrigen[1];
  15.       pTo  := @sDestino[1];
  16.       fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION
  17.     end;
  18.     Result := ShFileOperation(F);
  19. end;
  20.  
  21. begin
  22.   CopiaTodo(opendialog1.filename\datos\ , '.\datos\ '+edit1.text);
  23. end;


También utilicé la forma de ( CopyFile)


delphi
  1. CopyFile(PChar(opendialog1.filename),PChar('.\datos\ '+edit1.text),FALSE)

pero me da el error que en el anterior  funciona con la dirección completa pero no con la simplificada que  puse antes, el problema es que la carpeta donde se guardara se crea si no existe cuando edito el edit1  espero como siempre su ayuda gracias

  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.469 mensajes
  • LocationMéxico

Escrito 28 junio 2011 - 11:30

Hola

Una cosa es Copiar un archivo y otra mover un archivo, para mover archivos deberias utilizar la función RenameFile()

Ejemplo:



delphi
  1.     ArchivoOrigen := 'C:\DirectorioOrigen\NombreArchivo.Extension';
  2.     RutaDestino := 'C:\DirectorioDestino\'
  3.     RenameFile(ArchivoOrigen, RutaDestino + ExtractFileName(ArchivoOrigen));



Salud OS
  • 0

#3 marthamelo

marthamelo

    Advanced Member

  • Miembros
  • PipPipPip
  • 106 mensajes
  • LocationA Coruña

Escrito 28 junio 2011 - 11:45

Hola egostar, si es verdad he utilizado también tu sugerencia y nada no me copia el archivo
  • 0

#4 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.111 mensajes
  • LocationMadrid - España

Escrito 28 junio 2011 - 11:47

He probado utilizando opendialog para cargar y hasta ahí todo bien pero no sé cómo hacer para guardar dentro de mi archivo cuya ruta seria (.\datos\) y luego de esa barra iría un archivo que se crea cuando edito un edit  así que seria

delphi
  1. ('.\datos\ '+edit1.text)

.


La verdad es que es difícil entender lo que quieres. Me parece que pretendes mover archivos a una carpeta que está dentro de la carpeta que contiene tu aplicación y que se llama datos. lo que no entiendo es lo del edit1.txt. ¿Es un archivo o una carpeta?.

La ruta la resuelves así:



delphi
  1. Path:= ExtractFilePath(Application.ExeName) + 'datos\'



Por otro lado, la API ShFileOperation es capaz de mover y no copiar si se usa la opción FO_MOVE. La ventaja de esta API es que al usar el Shell, el usuario puede monitorizar el avanze como si lo hiciese el explorador, pero siempre que no se añada la opción FOF_SILENT

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.