Usuário com melhor resposta
Acesso Negado ao sobrescrever imagem

Pergunta
-
Estou tentando sobrescrever uma imagem, aparece uma mensagem de acesso negado. Já tentei várias coisas diferentes. Não sei como resolver o problema.
O código que estou usando é o seguinte:
{ OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "Todos os Arquivos(*.*)|*.*|Arquivos de Imagem(*.png)|*.png"; dlg.FilterIndex = 0; if (dlg.ShowDialog() == DialogResult.OK) { string arquivo = dlg.FileName; Bitmap imagem = new Bitmap(dlg.FileName); pbLogo.Image = imagem; if (System.IO.File.Exists(Properties.Settings.Default.PastaOrigem + @"\Logo\LogoTipo.png")) { Properties.Settings.Default.LogoTipo = dlg.FileName; Properties.Settings.Default.Save(); Properties.Settings.Default.Reload(); File.Copy(dlg.FileName, Properties.Settings.Default.PastaOrigem + @"\Logo\LogoTipo.png", true); }
Respostas
-
Olá. Resolvi insatisfatoriamente. Consegui renomear a imagem de forma que o programa possa reutilizar o nome anterior para a nova. No entanto, não consegui sobrescrever a imagem, nem mesmo apagá-la via código, apenas renomear. Configurei o aplicativo para que apague o arquivo renomeado na próxima inicialização do mesmo, garantindo assim que a imagem não esteja aberta no programa, mas mesmo assim, não aceita sobrescrever, nem apagar, apenas renomear...
- Sugerido como Resposta Lucio Rogerio SPBanned quinta-feira, 29 de março de 2018 09:33
- Marcado como Resposta Filipe B CastroModerator quinta-feira, 29 de março de 2018 19:01
Todas as Respostas
-
-
Bom dia, tentei rodar como administrador. Sem sucesso. O erro continua aparecendo. Me parece que o arquivo está aberto em outro processo. Não consigo entender qual, já que no momento de sobrescrever a imagem que aparecia no picturebox já foi alterada para outra imagem...
A pasta que usei tem permissões de alteração sem problema.- Editado ValNeh quarta-feira, 14 de março de 2018 13:46
-
-
-
Sim. Ela é carregada no picturebox ao iniciar o form. Só que ela é substituida por outra.
a ideia é que o usuário selecione outra e aí a antiga seja subtituida pela nova, copiando-a para a pasta padrão da aplicação. Aí tento sobrescrever para manter um nome padrão, mas com outra imagem. quando faço isso, a antiga já não está mais no picturebox. Tentei usar a função delete para apagar a imagem e aí copiar a nova, mas tbm não dá certo. configurei a aplicação para apagar a imagem que não é mais utilizada ao reiniciar o aplicativo, mas tbm não resolveu o problema...
Não sei o que está bloqueando. Tbm utilizei um código fonte que busca processos que estejam ativos para o arquivo em questão, mas ele retorna que o arquivo está livre....
Não faço ideia do que pode ser!
-
Tentei da forma como vc sugeriu, sem sucesso ...
if (dlg.ShowDialog() == DialogResult.OK) { string arquivo = dlg.FileName; Bitmap imagem = new Bitmap(dlg.FileName); pbLogo.Image = new Bitmap(imagem); if (!System.IO.Directory.Exists(Properties.Settings.Default.PastaOrigem + @"\Logo")) { System.IO.Directory.CreateDirectory(Properties.Settings.Default.PastaOrigem + @"\Logo"); File.Copy(dlg.FileName, Properties.Settings.Default.PastaOrigem + @"\Logo\LogoTipo.png"); } else { Properties.Settings.Default.LogoTipo = dlg.FileName; Properties.Settings.Default.Save(); Properties.Settings.Default.Reload(); File.Copy(dlg.FileName, Properties.Settings.Default.PastaOrigem + @"\Logo\LogoTipo.png", true); }
Este é o código, o erro acontece sempre na última linha do trecho de código citado acima.
-
-
Boa tarde, ValNeh. Tudo bem?
Conseguiu resolver o problema?
Se ainda não, o que falta?
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Olá. Resolvi insatisfatoriamente. Consegui renomear a imagem de forma que o programa possa reutilizar o nome anterior para a nova. No entanto, não consegui sobrescrever a imagem, nem mesmo apagá-la via código, apenas renomear. Configurei o aplicativo para que apague o arquivo renomeado na próxima inicialização do mesmo, garantindo assim que a imagem não esteja aberta no programa, mas mesmo assim, não aceita sobrescrever, nem apagar, apenas renomear...
- Sugerido como Resposta Lucio Rogerio SPBanned quinta-feira, 29 de março de 2018 09:33
- Marcado como Resposta Filipe B CastroModerator quinta-feira, 29 de março de 2018 19:01