Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Eleкtro en 19 Diciembre 2012, 19:31 pm



Título: (SOLUCIONADO) ¿Como renombrar un archivo o carpeta con el mismo nombre?
Publicado por: Eleкtro en 19 Diciembre 2012, 19:31 pm
Esto dará una excepción, porque el nombre es "el mismo" solo que con las minus/mayus cambiadas... (Vaya estúpida excepción!)
Código
  1. My.Computer.FileSystem.RenameFile("C:\tEsT.txt", "test.txt")
  2. My.Computer.FileSystem.RenameDirectory("C:\OldDirectory", "OldDIRECTORY")

Para evitarlo conozco dos técnicas,
La primera es renombrar el archivo añadiendole un caracter al final del nombre del archivo, y luego volverlo a renombrar al nombre original añadiendo el formato "ProperCase" que queramos.
La segunda (Gracias Kub0x) es mover el archivo al mismo lugar con el "ProperCase", es decir:

Archivo de origen: C:\tEST.TxT
Archivo de destino: C:\Test.txt

Quisiera saber si existe una forma que no implique tener que mover el archivo, y que no implique tener que añadirle caracteres al final del nombre original.

Saludos!


Título: Re: ¿Como renombrar un archivo o carpeta con el mismo nombre?
Publicado por: Novlucker en 19 Diciembre 2012, 19:55 pm
Utilizar Move es la manera correcta de hacerlo. En C# por ejemplo no existen funciones para renombrar, y de hecho el RenameDirectory y RenameFile de VB.NET invocan a Move internamente :P

Lo cual a su vez apunta a MoveFile de kernel32.dll (http://msdn.microsoft.com/es-es/library/windows/desktop/aa365239(v=vs.85).aspx)
Citar
The MoveFile function will move (rename) either a file or a directory (including its children) either in the same directory or across directories.
En definitiva, mover directamente es el paso corto a renombrar :P

Saludos


Título: Re: ¿Como renombrar un archivo o carpeta con el mismo nombre?
Publicado por: Eleкtro en 19 Diciembre 2012, 20:11 pm
Gracias ^^