Jump to content

o arquivo está aberto, não pode ser movido via vb.net


digoLucas
 Share

Recommended Posts

Pessoal por favor me ajudem... a tempos tenho pesquisado resolver esse problema mas até agora não achei uma solução

Tenho uma aplicação que copia uma imagem de uma pasta para outra.

		Dim item4 As ListViewItem
		Dim CaminhoImagem As String
		Dim Soma As String
		'Dim ddd As String = PastaImagemFinal
		For Each item4 In LV1.Items
			CaminhoImagem = item4.SubItems.Item(15).Text()
			Dim ValorCodigo As String = item4.SubItems.Item(0).Text()
			If Not item4.SubItems.Item(15).Text() = "0" Then
				Dim nomeArquivo As String = Path.GetFileNameWithoutExtension(CaminhoImagem)
				Dim extensao As String = Path.GetExtension(CaminhoImagem)
				Soma = nomeArquivo & extensao
				File.Copy(CaminhoImagem, PastaImagemFinal & Soma)
				item4.SubItems.Item(15).Text() = PastaImagemFinal & Soma
			End If

		Next

até qui da tudo certo.. mas lá na frente quando preciso mover essa mesma imagem o programa dá erro :

diz que imagem está sendo usada em outro processo... parece que meu sistema copiou a imagem e não encerrou os processos referentes a imagem..

For Each item4 In LV2.Items
			Dim ValorCodigo As String
			ValorCodigo = item4.SubItems.Item(0).Text()
			CaminhoImagem = item4.SubItems.Item(8).Text()
			If Not item4.SubItems.Item(8).Text() = "0" Then
				Dim nomeArquivo As String = Path.GetFileNameWithoutExtension(CaminhoImagem)
				Dim extensao As String = Path.GetExtension(CaminhoImagem)
				Soma = nomeArquivo & extensao

				File.Move(CaminhoImagem, SalaImpressão.txtPastaRecebimento.Text & Soma)

				ds.Reset()
				Dim SQL2 As String = "update Ve_Vendaitem set " _
									& " Status = '" & "0" & "'," _
									& " ArquivoImpressão = '" & SalaImpressão.txtPastaRecebimento.Text & Soma & "' " _
									& " where Codigo = " & ValorCodigo
				Dim adptr3 As New OleDbDataAdapter(SQL2, conect_banco)
				adptr3.Fill(ds)
			End If

		Next

tem como eu encerrar o processo referente a imagem após copia-la ?

o que eu tentei pesquisar foi encerar os processos pelo diretorio do arquivo apos copiar, mas não achei nada que funciona-se...

Edited by jpaulino
adicionado tags de código
Link to comment
Share on other sites

Mete o código em

 tags sff.

Não estás a fazer mais nada com a imagem na tua aplicação? Porque file.copy sucede mesmo se a imagem estiver a ser utilizada, ao contrário de file.move , deves estar a utilizá-la em algum lado e não te estás a aperceber.

Se tiveres a fazer alterações na imagem ou assim posta o resto do código, senão, não há nada nesse código que te 'bloqueie' a imagem, resumindo deves estar a usá-la externamente...

Link to comment
Share on other sites

Boas,

Você usa alguma API do windows do tipo LockFile diretamente ? Alguma outra thread está usando a imagem ? O arquivo de imagem é criado antes de ser movido, se sim como ? Usando File.Create() ? Já verificou seus privilégios, fechou todas as operações de fluxo ?

Edited by Muryllo
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.