从networking共享中读取文件将其创build时间设置为最后写入时间

当我从networking共享中读取文件时,会将创build时间更新为最后一次写入时间。 这使我与System.Configuration.Configuration问题,因为它认为文件已经改变,因此引发exception(该configuration文件已被另一个程序更改)。 解决方法是将创build时间手动设置为最后一次写入时间。 但是我想知道这是否是一个已知的问题。

这里是一些testing代码:

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; 

我不知道这个问题是在.netWindows API还是在服务器端。 有没有人有任何见解?

我知道这是一个古老的问题,但我在我的家用Linux服务器(非常旧的NAS盒子)上组织一些图像文件时遇到了这个问题。 文件创建时间是文件复制时间,我发现问题是由于EXT3 Linux文件格式不支持任何类型的共享(NFS和SAMBA)。 将文件移动到EXT4和XFS文件系统格式解决了我的问题。