2013-02-27 7 views
6

Quando leggo un file da una condivisione di rete, esso aggiorna il tempo di creazione all'ultimo tempo di scrittura. Questo mi crea problemi con System.Configuration.Configuration perché pensa che il file sia cambiato e pertanto genera un'eccezione (il file di configurazione è stato modificato da un altro programma). La soluzione alternativa sarebbe quella di impostare manualmente il tempo di creazione sull'ultimo tempo di scrittura manualmente. Ma mi piacerebbe sapere se questo è un problema noto.La lettura di un file da una condivisione di rete imposta l'ora di creazione sull'ultimo tempo di scrittura

Ecco alcuni codice di prova:

string filePath = @"X:\SomeFile.txt"; 
    FileInfo fileInfo = new FileInfo(filePath); 
    DateTime creationTimeBeforeRead = fileInfo.CreationTimeUtc; 
    FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); 
    byte[] result = new byte[fileStream.Length]; 
    fileStream.Read(result, 0, (int)fileStream.Length); 
    fileStream.Close(); 
    fileInfo.Refresh(); 
    DateTime creationTimeAfterRead = fileInfo.CreationTimeUtc; 

Non ho idea se il problema si trova all'interno .net, l'API di Windows o sul lato server. Qualcuno ha qualche idea?

+0

Ho appena provato ad aprirlo con il blocco note e si verifica lo stesso problema. Quindi immagino che .net non sia una possibile fonte per questo comportamento. – ctusch

+0

Che tipo di server è? Si noti che alcuni file system non supportano il tempo di creazione. –

+1

Questo non è normale, qualcosa è seriamente confuso nel redirector di rete. Lato server. –

risposta

1

So che questa è una vecchia domanda ma l'ho trovata mentre organizzavo alcuni file di immagine sul mio server Linux di casa (molto vecchia scatola NAS). Il tempo di creazione del file stava diventando il tempo di copia del file e ho scoperto che il problema era dovuto al formato di file EXT3 Linux che non supportava alcun tipo di condivisione (NFS e SAMBA). Lo spostamento dei file in un formato di file system EXT4 e XFS ha risolto i problemi per me.

Problemi correlati