Array
(
)

Dúvida usando Random

Itamar Souza
   - 09 jan 2014

Bom dia
Amigos, veja isso, gostaria de entender o funcionamento do Random, quero entender o porque eu tenho o mesmo nome de arquivo?
Agradeço
public partial class frmCadastro : System.Web.UI.Page
{
string diretorio = "";
string nomefoto = "";
Random rdm = new Random(1);
protected void Page_Load(object sender, EventArgs e)
{
}

public void GravaRegistro()
{
if (FileFotoProduto.HasFile)
{
diretorio = MapPath("~/Produtos/");
nomefoto = "produto" + rdm.Next(99999).ToString() + FileFotoProduto.FileName.Substring(FileFotoProduto.FileName.LastIndexOf("."), 4);
FileFotoProduto.SaveAs(diretorio + nomefoto);
listbox.Items.Add( nomefoto );
}

}
protected void btnGravar_Click(object sender, EventArgs e)
{
GravaRegistro();
}

}

Itamar Souza
   - 09 jan 2014

Encontrei esta solução, mais se alguém souber sobre o random, responde ai..

public void GravaRegistro()
{
if (FileFotoProduto.HasFile)
{
// usamos o metodo NewGuid da classe System.Guid.
// cria um identificador único. E esse identificador único tem uma probabilidade muito baixa de ser duplicado.
diretorio = MapPath("~/Produtos/");
nomefoto = Guid.NewGuid().ToString("D") + FileFotoProduto.FileName.Substring(FileFotoProduto.FileName.LastIndexOf("."), 4);
// nomefoto = "produto" + rdm.Next(1, 1000000).ToString() + FileFotoProduto.FileName.Substring(FileFotoProduto.FileName.LastIndexOf("."), 4);
FileFotoProduto.SaveAs(diretorio + nomefoto);
listbox.Items.Add(nomefoto);
}

}

Chiodini
   - 09 jan 2014

Bom dia
A principio teu ramdom esta correto.
Você ja depurou e verificou o que esta vindo nele?
pra ver se ele muda de valor a cada chamada?

Dica:
Pelo que estou vendo você esta usando para nomear uma foto,
não acho a melhor forma de se fazer usando o Ramdom.
acho que seria interessante tu criar um número sequencial para essa finalidade.
só uma dica mesmo...

att,
Chiodini

Itamar Souza
   - 09 jan 2014

Resolvido!!

public partial class frmCadastro : System.Web.UI.Page
{
string diretorio = "";
string nomefoto = "";
Random rdm = new Random(1);

protected void Page_Load(object sender, EventArgs e)
{

}

public void GravaRegistro()
{
if (FileFotoProduto.HasFile)
{
//usando o random : é preciso re-criar o mesmo dentro da chamada
rdm = new Random();
diretorio = MapPath("~/Produtos/");
//usando o Guid.NewGuid() é mais seguro pois este gera uma sequência difícil de se repetir
//nomefoto = Guid.NewGuid().ToString("D") + FileFotoProduto.FileName.Substring(FileFotoProduto.FileName.LastIndexOf("."), 4);
nomefoto = "produto" + rdm.Next(99999).ToString() + FileFotoProduto.FileName.Substring(FileFotoProduto.FileName.LastIndexOf("."), 4);
FileFotoProduto.SaveAs(diretorio + nomefoto);
listbox.Items.Add(nomefoto);
}

}

public void GeraIntervalo()
{

}

protected void btnGravar_Click(object sender, EventArgs e)
{
GravaRegistro();
}

}

Chiodini
   - 09 jan 2014

Show de bola.

valew pelo retorno.