Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - File in uso
Forum - C# / VB.NET - File in uso

Avatar
MrPaky (Member)
Pro


Messaggi: 125
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 14:48
Domenica, 21/12/2008
Ciao,
scusate di nuovo allora io ho risolto tutto grazie a totem! mo il mio problema è diventato una altro perchè devo creare un file di testo e ho fatto così:
Dim SaveFile As New SaveFileDialog
SaveFile.Title = "Salva file"
SaveFile.FileName = ""
SaveFile.Filter = "Text File|*.txt"
If SaveFile.ShowDialog = Windows.Forms.DialogResult.OK Then
IO.File.Create(SaveFile.FileName)
End If
If My.Computer.FileSystem.FileExists(SaveFile.FileName) Then
My.Computer.FileSystem.WriteAllText(SaveFile.FileName, TextBox1.Text, False, Encoding.Default)
End If

Ora qui: My.Computer.FileSystem.WriteAllText(SaveFile.FileName, TextBox1.Text, False, Encoding.Default)

Mi genera il seguente errore: Il processo non può accedere al file 'C:\Documents and Settings\(Nome del Mio computer)\Desktop\dsafds.txt' perché è in uso da un altro processo

ora come si fa a far terminare il processo prima della scrittura del file in modo che il porgramma scrive il file:-?:-?

PM Quote
Avatar
mitor (Normal User)
Pro


Messaggi: 73
Iscritto: 01/08/2007

Segnala al moderatore
Postato alle 21:41
Domenica, 21/12/2008
Testo quotato

Postato originariamente da MrPaky:

Ciao,
scusate di nuovo allora io ho risolto tutto grazie a totem! mo il mio problema è diventato una altro perchè devo creare un file di testo e ho fatto così:
Dim SaveFile As New SaveFileDialog
SaveFile.Title = "Salva file"
SaveFile.FileName = ""
SaveFile.Filter = "Text File|*.txt"
If SaveFile.ShowDialog = Windows.Forms.DialogResult.OK Then
IO.File.Create(SaveFile.FileName)
End If
If My.Computer.FileSystem.FileExists(SaveFile.FileName) Then
My.Computer.FileSystem.WriteAllText(SaveFile.FileName, TextBox1.Text, False, Encoding.Default)
End If

Ora qui: My.Computer.FileSystem.WriteAllText(SaveFile.FileName, TextBox1.Text, False, Encoding.Default)

Mi genera il seguente errore: Il processo non può accedere al file 'C:\Documents and Settings\(Nome del Mio computer)\Desktop\dsafds.txt' perché è in uso da un altro processo

ora come si fa a far terminare il processo prima della scrittura del file in modo che il porgramma scrive il file:-?:-?


Scusa ma per creare un file di testo non fai prima a fare cosi? :

My.Computer.FileSystem.WriteAllText("C:\filetesto.txt", "TESTO DA INSERIRE", False)

Al posto di "C:\filetest.txt" devi ovviamente mettere il percorso, oppure usi: Application.StartupPath + "testo.txt"
per ricercare nella root del programma..o nelle sotto directory da dove avvii il tuo programma..

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:24
Martedì, 23/12/2008
Ha ragione Mitor: l'operazione di scrittura crea il file se inesistente.

Per quanto riguarda il tuo errore, IO.File.Create è una funzione che restituisce in output un oggetto FileStream aperto. Dato che non hai utilizzato questo risultato, poiché hai trattato Create come se fosse una procedura, hai lasciato il file aperto. La scrittura corretta era:
Codice sorgente - presumibilmente Plain Text

  1. IO.File.Create("file").Close()


PM Quote
Avatar
MrPaky (Member)
Pro


Messaggi: 125
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 19:40
Martedì, 23/12/2008
Grazie totem

PM Quote