Visual Basic - Duplicar archivos

Life is soft - evento anual de software empresarial
   
Vista:

Duplicar archivos

Publicado por Juampa (6 intervenciones) el 03/12/2008 20:31:06
Buenas tardes, haber si me podeis ayudar, hace mucho tiempo que no toco Visual Basic y, la verdad, me esta costando un poquillo. El caso es que tengo una serie de carpetas en las cuales hay una serie de archivos XML en cada una de ellas. Bien, tendría que realizar un programa el cual duplicara todos los archivos que hay en cada carpeta (no, uno por uno, por dios....son muchísimos) y me creara en esa misma carpeta cada uno de los archivos por cuatriplicado añadiendole _a....._d al final del nombre de cada uno. De tal forma que al final tuvieramos en cada carpeta por ejemplo: nombre.xml, nombre_a.xml, nombre_b.xml, nombre_c.xml y nombre_d.xml....para cada uno de los XMLs fuentes.

Muchas gracias de antemano por vuestra ayuda.
1Abrazo Cracks
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duplicar archivos

Publicado por Christian (666 intervenciones) el 03/12/2008 23:53:49
HOLA JUAMPA.
LA VERDAD NO SE ME OCURRE NINGUNA FORMA SIN RECORRER CADA UNO DE LOS ARCHIVOS. YO HARIA UN COPYFILE , CON UN NAME EN CADA UNO
SI NO ENCONTRAS LA FORMA QUE QUERES TE ENVIO EL CODIGO DE LA MANERA QUE TE DIGO.
SALUDOS/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duplicar archivos

Publicado por Juampa (6 intervenciones) el 04/12/2008 08:53:21
Lo he estado mirando y la ejecución del programa tarda una barbaridad, estamos hablando de cientos de archivos XML. Si me haces el favor, no estaría de más echarle un vistazo al código que me dices.

Mil gracias Christian.
1Saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duplicar archivos

Publicado por Christian (666 intervenciones) el 04/12/2008 19:53:05
Juampa algo maravilloso !!! mira

'Referencia a Microsoft Scripting Runtime
Dim fso As New FileSystemObject

fso.CopyFolder "C:Documents and SettingsCarpeta", "C:Carpeta", True
MsgBox "fin"

fijate como va con eso saludos. agrega la referencia que te indico.
saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duplicar archivos

Publicado por Juampa (6 intervenciones) el 04/12/2008 23:16:15
Genial Christian, genial!!!!.....pero como cambiamos ahora los archivos que hay dentro de la carpeta para al duplicarlos ponerles un _a, _b, _c y _d al final del nombre??? Me estás salvando champion!!!

Ciao.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duplicar archivos

Publicado por igor (633 intervenciones) el 05/12/2008 23:32:21
A ver que os parece esto.

Shell "cmd /C ren C:\Carpeta\*.xml *_a.xml"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duplicar archivos

Publicado por Christian (666 intervenciones) el 06/12/2008 13:14:25
A ver Juampa !!!

Dim archivo As File
Dim directorio As Folder
Dim fso As New FileSystemObject

Set directorio = fso.GetFolder("C:Documents and SettingsChristian")
For Each archivo In directorio.Files

Name directorio.Path & "" & archivo.Name As directorio.Path & "" & fso.GetBaseName(archivo.Name) & "_a.pps"

Next archivo

jaja como le dice el dedo al moco yo a vos te saco !!!!

saludos chabon !!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duplicar archivos

Publicado por Juampa (6 intervenciones) el 06/12/2008 14:44:31
Joder...una putada chavales, aquí no tengo el visual para probarlo...pero si me he traido el código para probarlo. Os lo pego aquí para que le echeis un ojo, la verdad, tendré que probar ambas soluciones para ver cual de las 2 soluciones es más rápida:

Dim cadena As Integer
Dim n, result, cuenta, pcent
Dim a As String
Dim fso As New FileSystemObject

cuenta = 0
n = Dir$(origen$ & archivo$)
While (n <> "")
cadena = InStr(n, ".xml")
If cadena <> 0 Then
cuenta = cuenta + 1
n = Dir$
Else
n = Dir$
End If
Wend

result = 0
n = Dir$(origen$ & archivo$)
On Error GoTo malxfilecopya
While (n <> "") And (result > -1)
cadena = InStr(n, ".xml")
pcent = (result + 1) & "/" & cuenta & " "
pcent = pcent & Format$(100 * result / cuenta, "#0.0") & "%"
informa.Caption = pcent & vbNewLine & " Copiando a_ " & origen$ & n & vbNewLine & " a " & vbNewLine & destino$
DoEvents
If cadena <> 0 Then
a = Replace(n, ".xml", "a_.xml")
'MsgBox (a)
FileCopy origen$ & n, destino$ & a
result = result + 1
n = Dir$
continuaxfilecopya:
a = ""
Else
n = Dir$
End If
Wend

Si quereis os paso el código fuente entero. Da muy buenos resultados copiando archivos, 1000 archivos de 100Kb en 10 seg, pero claro, no copia directorios!!!....probaré ambas soluciones y si veré cual es la mejor...muchísimas gracias a ambos....Christian eres un crack....genial tu aportación Igor....veremos....y por dios no me compares con un moco Chris jajajajajaja.....
Seguimos en contacto para ver si soy capaz....joder el tiempo que hacía que no tocaba Visual.....

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar