当我从网络共享读取文件时,它会将创建时间更新为上次写入时间。这会导致 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 还是服务器端。有没有人有任何见解?