Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.lang.visual-basic > #19056 > unrolled thread
| Started by | Marco75 <marcoporzi75@gmail.com> |
|---|---|
| First post | 2017-06-12 03:09 -0700 |
| Last post | 2017-06-13 06:12 -0700 |
| Articles | 5 — 2 participants |
Back to article view | Back to it.comp.lang.visual-basic
Eliminazione file Marco75 <marcoporzi75@gmail.com> - 2017-06-12 03:09 -0700
Re: Eliminazione file Marco75 <marcoporzi75@gmail.com> - 2017-06-12 23:35 -0700
Re: Eliminazione file Luca D <antaniserse@yahoo.it> - 2017-06-13 05:33 -0700
Re: Eliminazione file Marco75 <marcoporzi75@gmail.com> - 2017-06-13 05:57 -0700
Re: Eliminazione file Marco75 <marcoporzi75@gmail.com> - 2017-06-13 06:12 -0700
| From | Marco75 <marcoporzi75@gmail.com> |
|---|---|
| Date | 2017-06-12 03:09 -0700 |
| Subject | Eliminazione file |
| Message-ID | <09d5cb8b-40ac-417b-b097-cd725e145ce3@googlegroups.com> |
Ciao,
nel mio programma sviluppato con visual studio 2010, prendo un file jpg e lo inoltro via mail.
dopo l'invio dovrei eliminarlo ma ho un errore in quanto mi dice che il file è utilizzato in un processo e non può essere eliminato...
il nome e percorso file è in txtMemoSelezione.Text
prima di eseguire il kill svuoto le listbox che lo mostrano e svuoto la picturebox che ne fa vedere l'anteprima
di seguito il codice di invio mail
Private Sub btnInvioMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInvioMail.Click
Dim outlookMessage As Outlook.MailItem
Dim appOutlook As New Outlook.Application
Try
outlookMessage = appOutlook.CreateItem(Outlook.OlItemType.olMailItem)
Dim recipients As Outlook.Recipients = outlookMessage.Recipients
recipients.Add("xx.xx@xxx.com") 'Mail del destinatario
outlookMessage.Subject = "Oggetto"
outlookMessage.Body = "Testo"
outlookMessage.Attachments.Add(txtMemoSelezione.Text)
outlookMessage.BodyFormat = Outlook.OlBodyFormat.olFormatHTML
outlookMessage.Send()
MessageBox.Show("La segnalazione è stata inviata correttamente...", "Invio mail", MessageBoxButtons.OK, MessageBoxIcon.Information)
'Sposto il file nella cartella "Visti"
Dim sFile As String = txtMemoSelezione.Text
Dim dFile As String = "Percorso\" & txtMemoSelezione2.Text
FileCopy(sFile, dFile)
'Azzero tutto ed elimino il file dalla cartella "Da vedere"
lbNuove.Items.Clear() 'Listbox con elenco file
lbVecchie.Items.Clear() 'Listbox con elenco file
lbNuove.Visible = False
lbVecchie.Visible = False
btnInvioMail.Visible = False
pbRichiestaSelezionata.Image = Nothing
lblAnteprima.Text = ""
outlookMessage = Nothing
appOutlook = Nothing
Kill(txtMemoSelezione.Text)
txtMemoSelezione.Text = ""
txtMemoSelezione2.Text = ""
Catch ex As Exception
MessageBox.Show("Mail non inviata!" & vbNewLine & vbNewLine & ex.Message, "Invio mail", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Finally
outlookMessage = Nothing
appOutlook = Nothing
End Try
End Sub
[toc] | [next] | [standalone]
| From | Marco75 <marcoporzi75@gmail.com> |
|---|---|
| Date | 2017-06-12 23:35 -0700 |
| Message-ID | <9d8a2450-25ea-44cd-83d0-3495bd30d47a@googlegroups.com> |
| In reply to | #19056 |
Il giorno lunedì 12 giugno 2017 12:09:25 UTC+2, Marco75 ha scritto:
> Ciao,
> nel mio programma sviluppato con visual studio 2010, prendo un file jpg e lo inoltro via mail.
> dopo l'invio dovrei eliminarlo ma ho un errore in quanto mi dice che il file è utilizzato in un processo e non può essere eliminato...
>
> il nome e percorso file è in txtMemoSelezione.Text
> prima di eseguire il kill svuoto le listbox che lo mostrano e svuoto la picturebox che ne fa vedere l'anteprima
>
> di seguito il codice di invio mail
>
> Private Sub btnInvioMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInvioMail.Click
>
> Dim outlookMessage As Outlook.MailItem
> Dim appOutlook As New Outlook.Application
>
> Try
>
> outlookMessage = appOutlook.CreateItem(Outlook.OlItemType.olMailItem)
>
> Dim recipients As Outlook.Recipients = outlookMessage.Recipients
>
> recipients.Add("xx.xx@xxx.com") 'Mail del destinatario
> outlookMessage.Subject = "Oggetto"
> outlookMessage.Body = "Testo"
> outlookMessage.Attachments.Add(txtMemoSelezione.Text)
> outlookMessage.BodyFormat = Outlook.OlBodyFormat.olFormatHTML
> outlookMessage.Send()
>
> MessageBox.Show("La segnalazione è stata inviata correttamente...", "Invio mail", MessageBoxButtons.OK, MessageBoxIcon.Information)
>
> 'Sposto il file nella cartella "Visti"
> Dim sFile As String = txtMemoSelezione.Text
> Dim dFile As String = "Percorso\" & txtMemoSelezione2.Text
>
> FileCopy(sFile, dFile)
>
> 'Azzero tutto ed elimino il file dalla cartella "Da vedere"
> lbNuove.Items.Clear() 'Listbox con elenco file
> lbVecchie.Items.Clear() 'Listbox con elenco file
> lbNuove.Visible = False
> lbVecchie.Visible = False
> btnInvioMail.Visible = False
> pbRichiestaSelezionata.Image = Nothing
> lblAnteprima.Text = ""
>
> outlookMessage = Nothing
> appOutlook = Nothing
>
> Kill(txtMemoSelezione.Text)
> txtMemoSelezione.Text = ""
> txtMemoSelezione2.Text = ""
>
> Catch ex As Exception
> MessageBox.Show("Mail non inviata!" & vbNewLine & vbNewLine & ex.Message, "Invio mail", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
> Finally
> outlookMessage = Nothing
> appOutlook = Nothing
> End Try
>
> End Sub
Ho provato anche con Move e ho fatto l'operazione di spostamento prima di inviare la mail ma nulla da fare!
Come memorizzo il file senza impegnare il processo?
[toc] | [prev] | [next] | [standalone]
| From | Luca D <antaniserse@yahoo.it> |
|---|---|
| Date | 2017-06-13 05:33 -0700 |
| Message-ID | <577faf67-5381-4da7-bcfe-e067680e2026@googlegroups.com> |
| In reply to | #19057 |
On Tuesday, June 13, 2017 at 8:35:42 AM UTC+2, Marco75 wrote: > Ho provato anche con Move e ho fatto l'operazione di spostamento prima di inviare la mail ma nulla da fare! > Come memorizzo il file senza impegnare il processo? Dipende come lo hai usato quel file, il codice qui sopra ne fa vedere solo una parte. Potrebbe essere tenuto ancora impegnato da Outlook, per esempio, nonostante tu abbia fatto i Nothing del caso... hai controllato nel Task Manager se il processo è chiuso quando hai l'eccezione? Potrebbe essere impegnato da un altra parte del codice, tipo quello che usi per l'anteprima a cui fai cenno... hai fatto tutti i .Dispose degli oggetti grafici?
[toc] | [prev] | [next] | [standalone]
| From | Marco75 <marcoporzi75@gmail.com> |
|---|---|
| Date | 2017-06-13 05:57 -0700 |
| Message-ID | <208fba98-945f-47c5-82c2-44b44c4ca769@googlegroups.com> |
| In reply to | #19058 |
Il giorno martedì 13 giugno 2017 14:33:34 UTC+2, Luca D ha scritto:
> On Tuesday, June 13, 2017 at 8:35:42 AM UTC+2, Marco75 wrote:
>
> > Ho provato anche con Move e ho fatto l'operazione di spostamento prima di inviare la mail ma nulla da fare!
> > Come memorizzo il file senza impegnare il processo?
>
> Dipende come lo hai usato quel file, il codice qui sopra ne fa vedere solo una parte.
> Potrebbe essere tenuto ancora impegnato da Outlook, per esempio, nonostante tu abbia fatto i Nothing del caso... hai controllato nel Task Manager se il processo è chiuso quando hai l'eccezione?
> Potrebbe essere impegnato da un altra parte del codice, tipo quello che usi per l'anteprima a cui fai cenno... hai fatto tutti i .Dispose degli oggetti grafici?
In realtà, credo che l'impegno del processo sia dovuto al fatto che, quando seleziono una voce dalla listbox (popolata dai file nella cartella), ho un controllo picturebox che mostra l'immagine.
Se non faccio mostrare l'immagine funziona...
sto provando a gestire il codice su Click della listbox in questo modo:
Private Sub lbNuove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbNuove.Click
txtMemoSelezione.Text = "J:\Folitec\DB Da SQL Server\Ricette macine\Segnalazioni variazioni\Da vedere\" & lbNuove.SelectedItem.ToString
txtMemoSelezione2.Text = lbNuove.SelectedItem.ToString
Using img As Image = Image.FromFile(txtMemoSelezione.Text)
pbRichiestaSelezionata.Image = img
'pbRichiestaSelezionata.Image = Image.FromFile(txtMemoSelezione.Text)
lblAnteprima.Text = "Anteprima richiesta variazione ricetta"
btnInvioMail.Visible = True
End Using
End Sub
con Using non compare l'anteprima nella picturebox quindi mi permette di eliminarlo ma non vedo l'immagine
spero di essermi spiegato
Marco
[toc] | [prev] | [next] | [standalone]
| From | Marco75 <marcoporzi75@gmail.com> |
|---|---|
| Date | 2017-06-13 06:12 -0700 |
| Message-ID | <9407a276-27fe-4b82-b14b-47fd8b923f6b@googlegroups.com> |
| In reply to | #19058 |
Il giorno martedì 13 giugno 2017 14:33:34 UTC+2, Luca D ha scritto: > On Tuesday, June 13, 2017 at 8:35:42 AM UTC+2, Marco75 wrote: > > > Ho provato anche con Move e ho fatto l'operazione di spostamento prima di inviare la mail ma nulla da fare! > > Come memorizzo il file senza impegnare il processo? > > Dipende come lo hai usato quel file, il codice qui sopra ne fa vedere solo una parte. > Potrebbe essere tenuto ancora impegnato da Outlook, per esempio, nonostante tu abbia fatto i Nothing del caso... hai controllato nel Task Manager se il processo è chiuso quando hai l'eccezione? > Potrebbe essere impegnato da un altra parte del codice, tipo quello che usi per l'anteprima a cui fai cenno... hai fatto tutti i .Dispose degli oggetti grafici? Credo di aver risolto! Spostavo il file prima di scaricarlo dalla picturebox! ora ho messo: picturebox.image.dispose poi FileCopy e kill sembra funzionare tutto, grazie per il supporto!!!! grazie per l'aiuto Marco
[toc] | [prev] | [standalone]
Back to top | Article view | it.comp.lang.visual-basic
csiph-web