Esto dará una excepción, porque el nombre es "el mismo" solo que con las minus/mayus cambiadas... (Vaya estúpida excepción!)
My.Computer.FileSystem.RenameFile("C:\tEsT.txt", "test.txt")
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!
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)
CitarThe 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
Gracias ^^