【问题标题】:Accessing a file whom 200 other user's are trying to access at same time as well访问 200 个其他用户同时尝试访问的文件
【发布时间】:2013-09-27 09:55:10
【问题描述】:

我正在开发一个代码,供 200 个不同的用户访问一个文件。

读取大量用户同时访问的文件的最佳做法是什么

FileStream stream = File.OpenRead(FileName);
 byte[] contents = new byte[stream.Length];
 stream.Read(contents, 0, (int)stream.Length);
 stream.Close();

还有更好的方法吗?

【问题讨论】:

  • 如果您要上传它,您需要stream.Write。要同时执行此操作,您需要异步上传文件。它会一直是同一个文件吗?
  • 出了什么问题?出了什么问题?为什么要上传?准确。
  • @codebrain“保存冲突”或访问异常?我不知道我只是在为他们做准备..
  • @SamLeach 更改了我的问题标题
  • 除非他不小心打开了具有写访问权限的文件。

标签: c# web-services .net-2.0


【解决方案1】:

您应该使用overload method 并明确指定文件共享(否则在打开多个流时会遇到UnauthorizedAccess 异常):

var stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read);

只要它是只读的 - 这应该可以正常工作。

【讨论】:

  • 默认情况下它使用 FileShare.None 打开文件,afaik。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-24
  • 1970-01-01
  • 1970-01-01
  • 2020-11-28
相关资源
最近更新 更多