.net 从网络共享读取文件会将其创建时间设置为上次写入时间

.net 从网络共享读取文件会将其创建时间设置为上次写入时间,.net,windows,file-io,network-share,.net,Windows,File Io,Network Share,当我从网络共享读取文件时,它会将创建时间更新为上次写入时间。这会导致System.Configuration.Configuration出现问题,因为它认为文件已更改,因此引发异常(配置文件已被其他程序更改)。解决方法是事先手动将创建时间设置为最后一次写入时间。但我想知道这是否是一个已知的问题 下面是一些测试代码: string filePath = @"X:\SomeFile.txt"; FileInfo fileInfo = new FileInfo(filePath);

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

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

我刚刚测试过用记事本打开它,同样的问题也出现了。所以我猜.net不是这种行为的可能来源。它是什么类型的服务器?请注意,某些文件系统不支持创建时间。这是不正常的,网络重定向程序中存在严重问题。我们的网络管理员一直在休假,他现在已经确认问题出在服务器上。我们有一些旧版本的Samba 3正在运行。谢谢你的提示!