Función filecopy

Necesito utilizar la función filecopy para copiar un fichero de un filebox a una carpeta que seleccione a través de un dirbox, ¿cómo lo puedo hacer? Había pensado utilizar el evento dobleclick en el filebox.

2 respuestas

Respuesta
1
El momento en el que realices la copia va a depender, básicamente, del diseño que hagas de la interface de usuario. Tan buena es la idea que tú dices como cualquier otra.
Con respecto a la copia supongo que ya sabes hacerla, en cualquier caso te incluyo una forma de hacerlo:
FileCopy File1.Path & IIf(Right(File1.Path, 1) <> "\", "\", "") & File1.FileName, Dir2.Path & IIf(Right(Dir2.Path, 1) <> "\", "\", "") & File1.FileName
Dónde File1 es el fichero origen (asociado a un Drive y un Dir) y Dir2 es el directorio destino (asociado a un Drive).
Yo tengo un código más sencillo:
Private Sub File1_DblClick()
Dim origen As String
Dim destino As String
Dim copiar As String
origen = Dir1.Path & File1.Name
destino = Dir2.Path
FileCopy origen, destino
End Sub
Pero no me funciona, ¿qué es lo que hago mal?
Gracias
Efectivamente, tu código parece más sencillo, pero unas puntualizaciones:
- Si copias un fichero del directorio raíz te funcionará, pero si lo copias de un subdirectorio no (fíjate en la peculiaridad de Dir1. Path que cuando está en el raíz incluye la \ pero cuando es un subdirectorio no la incluye).
- Al usar File1. Name, estás haciendo referencia al nombre del control, en este caso File1, que es lo que te está concatenando con el path.
Perdona, pero no acabo de cogerle el tranquilo, ¿qué es lo que tendría que modificar en mi código para que funcionase?
Gracias y un saludo
Debes cambiar:
origen = Dir1.Path & File1.Name
destino = Dir2.Path
por:
origen = Dir1.Path & "\" & File1.FileName
destino = Dir2.Path & "\" & File1.FileName
suponiendo que se trate de un subdirectorio o por:
origen = Dir1.Path & File1.FileName
destino = Dir2.Path & File1.FileName
Si se trata del directorio raíz.
En cualquier caso, la sintaxis que te indiqué en mi primera respuesta tiene en cuenta este hecho.
Respuesta
1
Buscá en planetsourcecode.com en la sección de vb, la palabra "shfileop" te van a salir unos cuantos ejemplos sobre esto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas