Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    93

    [VB.net] File in uso...

    Devo cancellare un file, io controllo che il file esista e quindi cancello. A volte pero' capita soprattutto quando la macchina e' molto impegnata che il file mi risulti ancora in uso.
    Qual'e' la soluzione mgliore per cancelalre un file aspettando che questo non sia piu' in uso in modo da non incappare in un exception?

  2. #2
    Non c'è una vera soluzione... se il file è in uso da un altro programma è in uso e poco ci si può fare, al massimo puoi sbloccarlo (con metodi piuttosto "sporchi"), ma è meglio evitare...
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    93
    Io so che il file viene sbloccato dopo poco in quanto e' il frutto di un programma estereno che ho killato.

    Allora giro la domanda: come controllo se un file e' ancora in uso?

  4. #4
    Provando ad eliminarlo (e, ovviamente, gestendo la possibile eccezione).
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    93
    dici che possa andare bene questo?


    codice:
    Private Sub DeleteFile(ByVal file As String)
            If IO.File.Exists(file) Then
    Riprova:
                Try
                    IO.File.Delete(file)
                Catch Exc As IOException
                    Threading.Thread.Sleep(1000)
                    GoTo riprova
                End Try
            End If
        End Sub

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    158
    così pianti l'applicazione per un tempo indefinito.

    Puoi far partire un nuovo thread che fa la stessa cosa senza piantare l'applicazione. Usa un ciclo while che è più carino e più efficente.
    DISCLAIMER
    quello che sta scritto qui sopra è dettato esclusivamente dall'intuito, non da specifiche conoscenze tecniche. Usate queste informazioni a vostro rischio e pericolo (anhe sui server di produzione

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    93
    Per quanto riguarda usare il while non ho problemi, ma per quanto riguarda lanciare un nuovo tread non saprei proprio dove cominciare. Mi servirebbe un esempio.

  8. #8
    Ti conviene fare una ricerca, discussioni sui thread ce ne sono parecchie in questo forum, sarebbe inutile aprirne un'altra...
    Anche perchè troverai info molto più dettagliate di quelle che ti possiamo dare noi in una singola risposta...

    Ciao
    Nulla è impossibile

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.