Principales respuestas
Funcion que Genera un nombre aleatorio unico y que tome los valores antes del punto

Pregunta
-
saludos amigos del foro, les traigo una pregunta, como puedo hacer para que mi función funcione, así como esta funciona cuando genera un nombre de 8 caracteres pero me di con la sorpresa que el nombre puede tener menos de 8 caracteres, mi pregunta es como puedo tomar n caracteres antes del punto, me podrán ayudar por favor.
saludos.
//Funcion que Genera un Nombre Aleatorio Unico
//Como se accesa: libreria.Nombre_Aleatorio()
public static string Nombre_Aleatorio()
{
string result = Path.GetRandomFileName().Substring(1, 8);
return result;
}
Respuestas
-
hola
si revisas la doc podras ver que tipo de nombre de archivo genera, pero si quieres obtener el nombre sin extension usa
Path.GetFileNameWithoutExtension()
no se necesita ninguna Substring o split
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Willams Morales viernes, 15 de diciembre de 2017 14:14
- Marcado como respuesta Rudolf Heiner viernes, 15 de diciembre de 2017 16:58
-
Puedes ocupar otras opciones como la estructura Guid, recuperar los ticks transcurridos, o algo más entendible como la fecha y tiempo en que fue generado el archivo, según para lo que requieras:
public static string GetFileName(string extensionName) { return $"{Guid.NewGuid()}.{extensionName}"; //return $"{DateTime.Now.Ticks}.{extensionName}"; //return $"Backup_{DateTime.Now:yyyyMMdd_HHmmssff}.{extensionName}"; } //Use method... MessageBox.Show(GetFileName("txt"));
- Marcado como respuesta Rudolf Heiner viernes, 15 de diciembre de 2017 16:58
-
Buenas Rudolf,
Varias cosas, en primer lugar, he probado Path.GetRandomFileName() y de por si de vuelve siempre me un string de 8 caracteres a la izquierda del punto, lleva como 20 minutos en un while, y siempre tiene .Lengh == 8 a la izquierda del punto.
Viendo tu codigo, veo un problema, estas haciendo SubString(1,8) , lo cual te va a dar desde la posicion 1 hasta la 9, por tanto vas a coger el punto, los strings empiezan en la 0, una posible solucion puede ser
string result = Path.GetRandomFileName().Substring(0, 8);
Por otro lado, si lo que quieres es cojer siempre lo que haya a la izquierda del punto, independientemente de la longitud, puede Splitear la cadena en el '.' (punto)
string result = Path.GetRandomFileName().Split('.')[0];
Quedo a la espera de tus respuestas
Atte
No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.
Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:
- Marcado como respuesta Rudolf Heiner viernes, 15 de diciembre de 2017 16:58
Todas las respuestas
-
Buenas Rudolf,
Varias cosas, en primer lugar, he probado Path.GetRandomFileName() y de por si de vuelve siempre me un string de 8 caracteres a la izquierda del punto, lleva como 20 minutos en un while, y siempre tiene .Lengh == 8 a la izquierda del punto.
Viendo tu codigo, veo un problema, estas haciendo SubString(1,8) , lo cual te va a dar desde la posicion 1 hasta la 9, por tanto vas a coger el punto, los strings empiezan en la 0, una posible solucion puede ser
string result = Path.GetRandomFileName().Substring(0, 8);
Por otro lado, si lo que quieres es cojer siempre lo que haya a la izquierda del punto, independientemente de la longitud, puede Splitear la cadena en el '.' (punto)
string result = Path.GetRandomFileName().Split('.')[0];
Quedo a la espera de tus respuestas
Atte
No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.
Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:
- Marcado como respuesta Rudolf Heiner viernes, 15 de diciembre de 2017 16:58
-
hola
si revisas la doc podras ver que tipo de nombre de archivo genera, pero si quieres obtener el nombre sin extension usa
Path.GetFileNameWithoutExtension()
no se necesita ninguna Substring o split
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Willams Morales viernes, 15 de diciembre de 2017 14:14
- Marcado como respuesta Rudolf Heiner viernes, 15 de diciembre de 2017 16:58
-
Puedes ocupar otras opciones como la estructura Guid, recuperar los ticks transcurridos, o algo más entendible como la fecha y tiempo en que fue generado el archivo, según para lo que requieras:
public static string GetFileName(string extensionName) { return $"{Guid.NewGuid()}.{extensionName}"; //return $"{DateTime.Now.Ticks}.{extensionName}"; //return $"Backup_{DateTime.Now:yyyyMMdd_HHmmssff}.{extensionName}"; } //Use method... MessageBox.Show(GetFileName("txt"));
- Marcado como respuesta Rudolf Heiner viernes, 15 de diciembre de 2017 16:58
-