【发布时间】:2013-02-13 03:23:15
【问题描述】:
当我从网络共享读取文件时,它会将创建时间更新为上次写入时间。这会导致 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 还是服务器端。有人有什么见解吗?
【问题讨论】:
-
我刚测试用记事本打开它,同样的问题发生了。所以我猜.net 不是这种行为的可能来源。
-
它是什么样的服务器?请注意,某些文件系统不支持创建时间。
-
这是不正常的,网络重定向器中有严重的问题。服务器端。
-
我们的网络管理员正在休假,他现在已经确认问题出在服务器上。我们正在运行一些旧版本的 Samba 3。感谢您的提示!
标签: .net windows file-io network-share