Cuando escribes un post y tienes la responsabilidad de hacerlo en un lugar como puede ser geeks.ms, intentas que tenga un mínimo de calidad. En este caso sé que no es así, aunque no puedo evitar hacerlo, puesto que es un tema que me ha tocado las narices más de una vez.
En más de una ocasión me he encontrado con la necesidad de tener que tocar un fichero temporal, tanto en WinForms como en WebForms para, por ejemplo, descomprimir un fichero, tratar un documento en la web para descargarlo posteriormente… El caso es que, en un momento dado, necesitamos tener un nombre de fichero “aleatorio” para poder tratarlo de manera temporal. Nada más lejos de la realidad o, mejor dicho, nada más lejos de las librerías de .Net Framework, puesto que el propio Framework se encarga de, como casi siempre, solventarnos el problema…
El método GetRandomFileName() de la clase System.IO.Path nos permitirá tener un nombre de fichero aleatorio, el cual podremos usar sin tener que hacer uso de librerías propias extrañas para poder crear un fichero en una carpeta determinada.
Lo sé y pido disculpas por ello… No es un post con una calidad aceptable, pero creo que, de paso que puede servirme de recordatorio a mí, igual también tiene utilidad para aquellos a los que la memoria les falla tanto como a mí… ejemmm
string fileRandom = System.IO.Path.GetRandomFileName();
-- Editado el día 28/2/11 para comentar lo siguiente:
En base a los comentarios, ¿qué se me ocurrió hacer?. Pues casi nada… Tan sólo dejar el ordenador almacenando nombres de ficheros generados por la función GetRandomFileName en una base de datos. Como no tenía mucha prisa, miraba, antes de la inserción a ver si existía. Resultado:
Dos millones de registros y no ha encontrado ningún duplicado. No es que la estadística sea mi fuerte, así que teniendo en cuenta que los nombres de los ficheros son de 8 caracteres más una extensión de 3,conteniendo letras y número, es fácil deducir que existen muchas más posibilidades que la cifra de dos millones, pero bueno, yo creo que ya ha llegado el momento de dejar de jugar con esto e intentar dedicarme a algo más serio… jeje