Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: guidosl en 12 Marzo 2009, 07:05 am



Título: (ayuda) copiar sin sobreescribir
Publicado por: guidosl en 12 Marzo 2009, 07:05 am
tengo una carpeta que contiene un "aaa.txt" ademas contiene muchas subcarpetas en las que tambien se encuentra ese "aaa.txt"

necesito un comando que le cambie la extensión a todos esos "aaa.txt" pero sin eliminarlos... osea seria copiarlos en la misma carpeta pero con otra extensión

ej: en cada carpeta y subcarpetas de estas tiene que quedar un "aaa.txt" y un "aaa.bat" (por decir una extensión)


C:\test\aaa.bat
C:\test\aaa.txt
C:\test\test
C:\test\test\aaa.bat
C:\test\test\aaa.txt
C:\test\test\test
C:\test\test\test\aaa.bat
C:\test\test\test\aaa.txt
C:\test\test\test\test
C:\test\test\test\test\aaa.bat
C:\test\test\test\test\aaa.txt

el problema es q no se cuantas subcarpetas hay ni cuales contienen el archivo "aaa.txt".....

lo unico que conozco es  la ubicacion de la carpeta principal. Ademas de que hay otros archivos con extensión .txt así q no me sirve cambiar solamente la extensión...ti ene que ser unicamente los archivos con ese nombre completo ("aaa.txt)


graciass


PD: comando de batch por si alguien le da una idea de como hacerlo en vb6

cd /d "C:\test"
for /r "C:\test" %%- in (aaaa.txt) do (                           
copy /y "%%-" "%%~pn-aaa.bat" > nul 2>&1   
)






lo mas cercano que encotre fue esto

http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/8.htm

esto me busco y enlisto todos los archivos q necesitaba en un "listbox"

pero no encuentro la manera de hacer una copia de cada uno de ellos en su propio directorio...

hay alguna forma de trabar con cada linea que se escribe en el "listbox"? seria lo ideal!!!!


muchas gracias


Título: Re: (ayuda) copiar sin sobreescribir
Publicado por: guidosl en 12 Marzo 2009, 20:09 pm
la solucion:

====se necesita referencia "microsoft scripting runintime"====




Public Function CopyAAA(strCarpeta As String)
  Dim fso As New FileSystemObje ct
  Dim fCarpeta As Folder, fCarp As Folder
  Set fCarpeta = fso.GetFolder(strCarpeta)
  'Copiamos el archivo
  If fso.FileExists(strCarpeta & "\aaa.txt") Then _
  fso.CopyFile strCarpeta & "\aaa.txt", strCarpeta & "\aaa.bat"
  'Exploramos los subdirectorios
  For Each fCarp In fCarpeta.SubFo lders
  CopyAAA (fCarp.Path)
  Next
  End Function




Private Sub Command1_Click()
CopyAAA ("C:\Test")
End Sub




esto era para ahcer el backup de cada archivo "aaa.txt"

ahora tengo que reemplazar todos los "aaa.txt" por un unico "aaa.txt" que se encuentra en la carpeta del proyecto de visual basic

osea seria sobreescribir cada uno por el q tengo en la carpeta del proyecto asi todos los de la carpeta "C:\test" y sus subcarpetas serian iguales (serian el que tengo en la carpeta del proyecto)

alguna idea=?¿??


gracias