Newsgroup: it.comp.lang.visual-basic
Titolo: [VB .NET] Cancellare un allegato

Ciao a tutti!
Ho un problema con Visual Basic .NET (utilizzo Visual Studio .NET 2003). Nel
mio programma, devo creare un file di testo, allegarlo ad una mail, inviarla
all'indirizzo specificato e, quindi, eliminare il file creato. Il problema è
che, quando cerco di cancellare il file con File.Delete, il file non viene
effettivamente cancellato finché non chiudo il programma (non viene generata
alcune eccezione). Se, dopo aver eseguito l'istruzione File.Delete, ma prima
della chiusura del programma, faccio doppio clic sul nome del file in
Gestione Risorse, ottengo il messaggio di errore "Accesso negato". Ho
verificato che il problema si presenta solo quando allego il file alla mail,
perché in tutti gli altri casi la cancellazione avviene con successo.
Per allegare il file, uso queste istruzioni:
Dim eMail As New MailMessage
'...
eMail.Attachments.Add(New MailAttachment("C:\Test.txt",
MailEncoding.Base64))
Qualcuno mi può dare una mano? Grazie in anticipo.
Marco Minerva, 
marco....@tiscali.it

 ha scritto nel messaggio
news:9mW2d.270982$OR2.12...@news3.tin.it...

Ho eseguito un test con un finale come segue:
dim ff As System.IO.File
  ff.Delete(fileAttach)
il file viene cancellato dal metodo Delete
Ave
giuseppeD
---
CCR

 il file viene cancellato dal metodo Delete
==========
Ciao!
Ti ringrazio per il suggerimento, ma il problema persiste, ovvero il file
non viene effettivamente cancellato finché non esco dal programma. Altre
idee?
Grazie ancora.
Marco Minerva, 
marco....@tiscali.it

 idee?
 Dim ff As System.IO.File
 ff.Delete(sAttach)
 Return True
Catch ex As Exception
            MessageBox.Show(ex.Message)
            Return False
        End Try
Da me, blocco l'esecuzione a   Return True,
quindi prima di terminare il metodo,
verifico nella cartella, il file è scomparso.
Evidentemente è prima che qualcosa non funziona.
Ave
giuseppeD
---
CCR

"Marco Minerva"
Ben riletto :-)
Un Paperino non .NET.

 ha scritto nel messaggio
news:g103d.272585$OR2.12...@news3.tin.it...

=====
Ciao!
Ho verificato che, se la mail viene inviata con successo, il file viene
cancellato correttamente, mentre se si verifica un errore durante l'invio,
quindi sull'istruzione "SmtpMail.Send", la cancellazione del file allagato
non viene effettuata. Altre idee?
Marco Minerva, 
marco....@tiscali.it

 ha scritto nel messaggio
news:Sgc3d.273903$OR2.12...@news3.tin.it...


 non viene effettuata. Altre idee?
Se si invia ad un utente inesistente ma con indirizzo email ben formattato,
l'email parte e il file č cancellato.
Il problema esiste, presumo, se si tenta di inviare una email non
formattata,
presumo che un controllo, prima di eseguire il metodo per la spedizione č
opportuna.
Ave
giuseppeD
---
CCR

 opportuna.
=============
Il problema si presenta anche quando si specifica un server della posta in
uscito non valido... O meglio, valido, ma che non permette il relay del
messaggio, ad esempio perché non si è collegati con quel provider.
Marco Minerva, 
marco....@tiscali.it

 messaggio, ad esempio perché non si è collegati con quel provider.
Presumo dia un errore,
se si, intercetti l'errore, e lì elimini il file.
Comunque puoi utilizzare il blocco Finally, per essere certo che una
istruzione sia eseguita comunque.
Ave
giuseppeD
---
CCR

 ha scritto nel messaggio
news:XAl3d.276764$OR2.12...@news3.tin.it...

=====
Non hai capito il problema... Se si verifica un errore, il file non viene
cancellato!!!!
Marco Minerva, 
marco....@tiscali.it

 Risorse, ottengo il messaggio di errore "Accesso negato".
Hai premuto F5 in gestione risorse?
Alberto
--
"Non mi sembra piů granda del Delfino..."
"A partir dal fat che la merda liquida
l'as drisa gnan a puntlarla,
cňsta chě l'č piň granda, gnuranta."

 cancellato!!!!
Hai verificato se il file è chiuso ?
Ave
giuseppeD
---
CCR

 ha scritto nel messaggio
news:B2H3d.281976$OR2.12...@news3.tin.it...

Certo, il file è chiuso, infatti se provo a cancellarlo da Esplora Risorse,
prima di eseguire l'istruzione File.Delete, la cancellazione avviene
correttamente.
Marco Minerva