Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - capire attributi file
Forum - C# / VB.NET - capire attributi file

Avatar
fosforo (Normal User)
Expert


Messaggi: 299
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 15:23
Giovedì, 09/07/2009
Ciao
Ho un piccolo problema nel capire quando la copia di un file si è definitivamente completata.
Ho usato 2 metodi, il 1° controlla il peso file con FileLen(NomeFile), il 2° controlla se il file può andare in lettura/scrittura con fs = System.IO.File.Open(NomeFile, IO.FileMode.Open, IO.FileAccess.Write, IO.FileShare.None).
Quindi se queste due condizioni sono soddisfatte il file è completo.
Il problema è che, nel mio caso usando un computer Mac, durante la copia da Mac al mio PC il peso file risulta essere quello definitivo e il file è riscrivibile anche durante la copia.

Sapreste consigliarmi un'altro sistema per fare questo tipo di controllo??

Grazie


Scusate per la figuraccia.
PM Quote
Avatar
riseofapocalypse (Ex-Member)
Pro


Messaggi: 150
Iscritto: 08/07/2009

Segnala al moderatore
Postato alle 16:06
Giovedì, 09/07/2009
Potresti spiegarti un po meglio? Non ho capito tanto bene le tue intenzioni :) comunque provo ad azzardare un ipotesi: la copia di un file termina quando il file sorgente ed il file destinazione sono identici, detto questo puoi usare la funzione IO.File.Equals per verificare se sono uguali! Ad esempio:
Codice sorgente - presumibilmente VB.NET

  1. Dim f1 As New IO.FileStream(percorso1, IO.FileMode.Open)
  2.         Dim f2 As New IO.FileStream(percorso2, IO.FileMode.Open)
  3.         MsgBox(IO.File.Equals(f1, f2))


Non ho provato il codice, ma ad occhio mi sembra che sia corretto :k:


Mountain's man said no!
PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 299
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 16:15
Giovedì, 09/07/2009
Grazie Rise
Il problema è che la mia cartella è condivisa con un sacco di gente e ognuno può scaricare quindi non so il Path di partenza del file.
Il meccanismo è quello che hai capito.
Infatti il mio script usa una Loop.
  Do
                peso1 = FileLen(NomeFile)
                Pause(30)
                peso2 = FileLen(NomeFile)
                If peso1 = peso2 Then
                    Exit Do
                End If

poi prosegue con il controllo dei permessi

fs = System.IO.File.Open(NomeFile, IO.FileMode.Open,IO.FileAccess.Write,IO.FileShare.None)

funziona bene con Microsoft ma non con i mac e non capisco il motivo


Scusate per la figuraccia.
PM Quote
Avatar
riseofapocalypse (Ex-Member)
Pro


Messaggi: 150
Iscritto: 08/07/2009

Segnala al moderatore
Postato alle 16:54
Giovedì, 09/07/2009
Sinceramente non ho mai utilizzato Macintosh e non so come funziona, quindi non credo di poterti essere utile :( prova ad attendere altre risposte :)


Mountain's man said no!
PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 299
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 17:13
Giovedì, 09/07/2009
Ti invidio.
Ma purtroppo li ho in mezzo alle scatole


Scusate per la figuraccia.
PM Quote
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Segnala al moderatore
Postato alle 19:21
Giovedì, 09/07/2009
non puoi far fare la copia del file direttamente dal tuo programma così la puoi controllare?


http://www.mte90.net/
Kde, Debian e Programmazione web/Desktop!


Linux Counter.li #482442
PM Quote