Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.lang.visual-basic > #19056 > unrolled thread

Eliminazione file

Started byMarco75 <marcoporzi75@gmail.com>
First post2017-06-12 03:09 -0700
Last post2017-06-13 06:12 -0700
Articles 5 — 2 participants

Back to article view | Back to it.comp.lang.visual-basic


Contents

  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

#19056 — Eliminazione file

FromMarco75 <marcoporzi75@gmail.com>
Date2017-06-12 03:09 -0700
SubjectEliminazione 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]


#19057

FromMarco75 <marcoporzi75@gmail.com>
Date2017-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]


#19058

FromLuca D <antaniserse@yahoo.it>
Date2017-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]


#19059

FromMarco75 <marcoporzi75@gmail.com>
Date2017-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]


#19060

FromMarco75 <marcoporzi75@gmail.com>
Date2017-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