Renombrar con otro nombre
Renombrar con otro nombre
Hola a todos, sucede que quiero hacer para que me renombre un archivo pero si existiera ya el archivo, el nombre sea otro aumentado un numero
Por ejemplo tengo una carpeta llamada [Carpeta Recuperada] y [Carpeta Varios] pero yo le quiero renombrar a [Carpeta Varios] como [Carpeta Recuperada] pero que se enumere que quede de la siguiente manera:
[Carpeta Recuperada]
[Carpeta Recuperada01]
y si quiero hacer lo mismo en otras carpetas tome un nuevo numero quedando asi:
[Carpeta Recuperada]
[Carpeta Recuperada01]
[Carpeta Recuperada02]
[Carpeta Recuperada03]
[Carpeta Recuperada04]
He intentado con Do Until pero no me funciona o estoy aplicando mal.
Alguna ayuda al respecto?
Como funcionaria para renombrar archivos?
Por ejemplo si quiero copiar un archivo .docx en donde ya existe otro con el mismo nombre. ¿como pudiera hacer para que se copie con un numero diferente?
Podrian Ayudarme con un buen ejemplo?
Gracias
Por ejemplo tengo una carpeta llamada [Carpeta Recuperada] y [Carpeta Varios] pero yo le quiero renombrar a [Carpeta Varios] como [Carpeta Recuperada] pero que se enumere que quede de la siguiente manera:
[Carpeta Recuperada]
[Carpeta Recuperada01]
y si quiero hacer lo mismo en otras carpetas tome un nuevo numero quedando asi:
[Carpeta Recuperada]
[Carpeta Recuperada01]
[Carpeta Recuperada02]
[Carpeta Recuperada03]
[Carpeta Recuperada04]
He intentado con Do Until pero no me funciona o estoy aplicando mal.
Alguna ayuda al respecto?
Como funcionaria para renombrar archivos?
Por ejemplo si quiero copiar un archivo .docx en donde ya existe otro con el mismo nombre. ¿como pudiera hacer para que se copie con un numero diferente?
Podrian Ayudarme con un buen ejemplo?
Gracias
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
https://www.facebook.com/yasmanycurimilma
Re: Renombrar con otro nombre
Creo que hay una API o interface que hace eso. si son pocos archivos comprueba si existe el archivo.
Saludos
Saludos
- ............................................
......................................
Re: Renombrar con otro nombre
A ver si entendí...
Lo que quieres hacer es renombrar una carpeta cualquiera a "Carpeta Recuperada", y si ya existe una carpeta con ese nombre, se cambie el nombre a "Carpeta Recuperada1" y así sucesivamente, prueba esta función quizas debas corregir algo..
Para renombrar los ficheros es cuestión de modificarlo un poco...
Saludos..
Lo que quieres hacer es renombrar una carpeta cualquiera a "Carpeta Recuperada", y si ya existe una carpeta con ese nombre, se cambie el nombre a "Carpeta Recuperada1" y así sucesivamente, prueba esta función quizas debas corregir algo..
Código: Seleccionar todo
_RenameFolder("E:\Carpeta Varios","Carpeta Recuperada") ; Ejemplo llamada a la función_RenameFolder
Func _RenameFolder($sPath, $sNewName)
Local $sDir, $sNr=1,$wName
If StringRigth($sPath,1) ="\" then $sPath = StringTrimRigth($sPath,1)
$sDir=StringLeft($sPath, StringInStr($sPath, "\", -1))
$wName = $sDir & $sNewName
While Not FileExists($wName)
$wName = $sDir & $sNewName & $sNr
$sNr += 1
WEnd
RunWait(@ComSpec&' /c REN '&$sPath&' '&$wName)
EndFunc ;==>_RenameFolder
Saludos..
Re: Renombrar con otro nombre
Muchas gracias , el día de ayer realice algo de code y si me funcionó, pero la secuencia va aumentando un numero mas al nombre pero bueno algo es algo.
Sucede que algunos virus crean una carpeta sin nombre, esta creación de carpeta sin nombre manualmente se hace con la combinación de ALT+0160 (crea un "espacio vacío" pero no se identifica como espacio, tiene una particularidad), bueno en si lo que quería hacer y ya lo realice en cierta forma era que una vez ejecutados los procesos de mi software y que identifique esta carpeta (que por cierto suelen estar los archivos personales,) le cambie de nombre a [Archivos Recuperados] y si ya existe este le aumente un numero.
No descarto tu ayuda y tu tiempo PDF, lo mio puede que sea muy rustico y estudiaré lo que hace tu code, que por cierto voy a necesitar implentar tu ayuda que me has brindado. Gracias
Sucede que algunos virus crean una carpeta sin nombre, esta creación de carpeta sin nombre manualmente se hace con la combinación de ALT+0160 (crea un "espacio vacío" pero no se identifica como espacio, tiene una particularidad), bueno en si lo que quería hacer y ya lo realice en cierta forma era que una vez ejecutados los procesos de mi software y que identifique esta carpeta (que por cierto suelen estar los archivos personales,) le cambie de nombre a [Archivos Recuperados] y si ya existe este le aumente un numero.
No descarto tu ayuda y tu tiempo PDF, lo mio puede que sea muy rustico y estudiaré lo que hace tu code, que por cierto voy a necesitar implentar tu ayuda que me has brindado. Gracias
Código: Seleccionar todo
Local $unidad = "I:"
Local $name = "Archivos Recuperados"
Do
If FileExists($unidad & "\" & $name) Then
$name &= +1
If FileExists($unidad & "\" & $name) Then
$valor = StringRight($name, 1) + 1
DirMove($unidad & "\ ", $unidad & "\" & "Archivos Recuperados" & $valor)
Else
DirMove($unidad & "\ ", $unidad & "\" & $name)
EndIf
Else
DirMove($unidad & "\ ", $unidad & "\" & $name)
EndIf
Until Not FileExists($unidad&"\ ")
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
https://www.facebook.com/yasmanycurimilma
Re: Renombrar con otro nombre
No hay de que..., un consejo con respecto a tu codigo, creo que en este caso seria mejor utilizar While...WEnd, porque este bucle comprueba al inicio la veracidad de la expresión y en el caso verdadero ya no ejecuta el codigo que sigue, para evitar errores,... y no es necesario comprobar varias veces si existe la carpeta, basta con otro bucle, mira este codigo modificado
Saludos!
Código: Seleccionar todo
Local $unidad = "I:"
Local $name = "Archivos Recuperados"
Local $i=1
While Not FileExists($unidad & "\ ")
While Not FileExists($unidad & "\" &$name)
$name="Archivos Recuperados"&$i
$i+=1
Wend
DirMove($unidad & "\ ",$unidad & "\" & $name)
WEnd
- BasicOs
- Site Admin
- Mensajes: 2091
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Re: Renombrar con otro nombre
Código: Seleccionar todo
Por ejemplo si quiero copiar un archivo .docx en donde ya existe otro con el mismo nombre. ¿como pudiera hacer para que se copie con un numero diferente?
El ejemplo anterior te vale. Solo que usa Filemove() porque te devuelve valores como el éxito de la operación facilmente.
Usa el punto o el punto y la extensión para separar el nombre con StringinStr() , (hay alguna función que lo hace también).
Haces un bucle como tienes y vas desde el 001 en adelante, y al último le sumas uno para el siguiente. Mira las funciones FILExx..
Te publicaré en unos dias un ejemplo programa que hace algo del estilo:
Este programa lo hice para cuando aparecen ficheros escaneados automáticamente en una carpeta del pc, y aviso que ya está listo el escaneo de un documento, y el usuario les cambia el nombre para tener algo organizado...
Salu22:)
Re: Renombrar con otro nombre
Gracias chicos! por su ayuda... ando en unas pruebas de funcionalidad, EL LUNES ESTOY DE VUELTA.
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
https://www.facebook.com/yasmanycurimilma