我遇到罕见的情况,即写入文件后无法立即从UNC路径读取文件。这里的工作流程:C#使用FileStream将上载的文件写入UNC,以后再读取它有时不起作用
- plupload发送大文件的数据块到的WebAPI方法
- 方法写入的块的UNC路径(存储服务器)。这循环直到文件完全上传。
- 其他几个操作后,同样的方法尝试再次读取该文件,有时找不到文件
似乎只发生后,我们的服务器已经闲置了一段时间。如果我重复上传几次,它就开始工作。
我认为这可能是一个网络配置问题,或与文件没有完全关闭之前再次被读取。
下面是写到文件中的部分代码
SaveStream(stream, new FileStream(fileName, FileMode.Append, FileAccess.Write));
这里的SaveStream定义(在这种情况下是FILESTREAM OK?):
private static void SaveStream(Stream stream, FileStream fileStream)
{
using (var fs = fileStream)
{
var buffer = new byte[1024];
var l = stream.Read(buffer, 0, 1024);
while (l > 0)
{
fs.Write(buffer, 0, l);
l = stream.Read(buffer, 0, 1024);
}
fs.Flush();
fs.Close();
}
}
下面是读取文件的代码:
var fileInfo = new FileInfo(fileName);
var exists = fileInfo.Exists;
这是fileInfo.Exists
返回false。
谢谢
这可能是用于处理存储文件的硬件和软件正在睡觉。你可以用脚本重复这个(像PS脚本)吗? –
@ChristopherStevenson - 你能否详细说明“睡觉”? – MorganTiley