2013-02-27 11 views
6

ネットワーク共有からファイルを読み込むと、作成時刻が最後の書き込み時刻に更新されます。このため、System.Configuration.Configurationに問題が発生します。なぜなら、ファイルが変更されたと考え、例外をスローします(構成ファイルは別のプログラムによって変更されています)。回避策は、作成時間を前回の書き込み時間に手動で設定することです。しかし、これが既知の問題かどうかを知りたいのですが。ここでネットワーク共有からファイルを読み込むと、その作成時刻が最後の書き込み時刻に設定されます

は、いくつかのテストコードです:

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; 

問題は、.NET内にあるWindowsのAPIまたはサーバー側であれば、私は考えています。誰にも洞察はありますか?

+0

メモ帳で開いてみたところ、同じ問題が発生しました。だから私は.netはこの動作の可能なソースではないと思います。 – ctusch

+0

どのようなサーバーですか?いくつかのファイルシステムは作成時間をサポートしていないことに注意してください。 –

+1

これは正常ではありません。ネットワークリダイレクタで重大な問題が発生しています。サーバ側。 –

答えて

1

これは古い質問ですが、自宅のLinuxサーバー(非常に古いNASボックス)でいくつかのイメージファイルを整理しています。ファイル作成時間がファイルのコピー時間になっていたので、どのタイプの共有(NFSおよびSAMBA)でもサポートされていないEXT3 Linuxファイル形式による問題であることがわかりました。ファイルをEXT4およびXFSファイルシステム形式に移動すると、私の問題が解決しました。

関連する問題