Quisiera saber mediante macros cómo puedo hacer para
cambiar la extensión a los archivos de un directorio y
los subdirectorios.
Gracias!
es como en MS-DOS que uno da el comando REN *.mp3 *.rjo y
cambia todos los mp3 a rjo pero necesito hacerlo mediante
macros y en los subdirectorios.
>-----Mensaje original-----
>.
>
Sub CambiarExtensiones()
Dim fso As Object, fCarpeta As Object, tmpCarpeta As Object
Dim Fichero As Object, tmpFichero As Object
Dim strRutaInicial As String
strRutaInicial = "C:\Ruta" 'Ruta que se procesará
Set fso = CreateObject("Scripting.FileSystemObject")
Set fCarpeta = fso.GetFolder(strRutaInicial)
For Each tmpFichero In fCarpeta.Files
Name tmpFichero.Path As Left(tmpFichero.Path, (InStrRev(tmpFichero.Path, "."))) & "NuevaExtensión" '<<-- Poner la extensión que sea.
Next tmpFichero
Set tmpFichero = Nothing
Set Fichero = Nothing
Set tmpCarpeta = Nothing
Set fCarpeta = Nothing
Set fso = Nothing
Recursivo strRutaInicial
End Sub
Public Sub Recursivo(RutaInicial As String)
Dim fso As Object, fCarpeta As Object, tmpCarpeta As Object
Dim Fichero As Object, tmpFichero As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set fCarpeta = fso.GetFolder(RutaInicial)
For Each tmpCarpeta In fCarpeta.SubFolders
For Each tmpFichero In tmpCarpeta.Files
Name tmpFichero.Path As Left(tmpFichero.Path, (InStrRev(tmpFichero.Path, "."))) & "NuevaExtensión" '<<-- Poner la extensión que sea.
Next
Recursivo tmpCarpeta.Path
Next
Set tmpFichero = Nothing
Set Fichero = Nothing
Set tmpCarpeta = Nothing
Set fCarpeta = Nothing
Set fso = Nothing
End Sub
Un saludo.
Fernando Arroyo
MS MVP - Excel
"Jorge" <anon...@discussions.microsoft.com> escribió en el mensaje news:8b8001c432b7$8fa6e520$a601...@phx.gbl...
[solo por aportar una alternativa mas] :))
[me parece que] valdria la pena analizar el uso de la instruccion =>Name<=
=> 'permite' renombrar archivos si se usa el mismo directorio [o copiar archivos EN OTRO directorio]
=> Name "Origen" As "Destino" <=
'requisitos' [al renombrar] = (1) que "Origen" EXISTA [y este cerrado] y (2) que "Destino" NO EXISTA
[probablemente] usando bucles/ciclos [For..Next] con matrices, 'patrones', etc.
saludos,
hector.
Voy a hacer las pruebas...
Saludos!
>-----Mensaje original-----
>.
>