Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
[#] Cancellare forzatamente un file
sabato 10 dicembre 2005 - 11.51
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Juwan
Profilo
| Junior Member
76
messaggi | Data Invio:
sab 10 dic 2005 - 11:51
Salve ragazzi ho un problema con un'applicazione word document, ho creato un
pulsante all'interno del smart panel di word, che copia il documento aperto,
in un altro file, e poi questo file viene letto, ovviamente ogni volta che
avvio questa procedura devo prima assicurarmi che il file di destinazione
non esista già, ma proprio questo fatto mi da dei problemi, la prima volta
che viene chiamata questa procedura, va tutto a buon fine, ma se la chiamo
nuovamente, mi dice che è impossibile cancellare il file di destinazione
perchè è utilizzato in un altro processo, invece non c'è nessun processo che
usa quel file, esiste forse un modo per cancellare forzatamente un file.
Posto comunque qui sotto il codice affinchè possa farmi capire meglio.
private void leggi_testo_Click(object sender,EventArgs e)
{
try
{
if(File.Exists(destination))
File.Delete(destination);
File.Copy(source, destination)
}
catch (Exception ex)
{
MessageBox.Show( ex.Message + Environment.NewLine +
ex.StackTrace);
}
}
schifidus
Profilo
| Junior Member
92
messaggi | Data Invio:
lun 12 dic 2005 - 19:36
Ciao il metodo Copy esposto dalla classe File ha due costruttori:
il primo accetta due argomenti (file di origine e file di destinazione)
l'overload del metodo accetta 3 argomenti (file di origine, file di destinazione, bool overwrite).
Il terzo parmaetro è un valore booleano che settato a true ti permette di sovrascrivere in automatico il file nel caso esista già.
Questo ti permette di eliminare del codice.
la tua nuova funzione sarà:
private void leggi_testo_Click(object sender,EventArgs e)
{
try
{
File.Copy(source, destination,true)
}
catch (Exception ex)
{
MessageBox.Show( ex.Message + Environment.NewLine +
ex.StackTrace);
}
}
Ti consiglio poi di fare il catch della specifica eccezzione, in quanto sai già in quale eccezzione potresti incorrere:
System.IO.IOException.
Inoltre per gestirla meglio dovresti mettere in una clausola finally il metodo close per i due files e rilanciare l'eccezione al metodo chiamante per poi intercettarla ad un livello più alto.
Ciao Marco.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !