在我的应用中,我试图从文件系统中读取一个流。 这是我的方法:
public Stream ReadStream (string path)
{
return new FileStream (path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
}
此方法有时有效,但大多数情况下它会引发以下异常:
Sharing violation on path /data/data/MyPath/11.png
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0
你能帮帮我吗?非常感谢!
答案 0 :(得分:1)
FileShare.None
表示如果系统上的其他内容在同一文件上打开了文件句柄,您将无法打开该流。这也意味着只要您的句柄处于打开状态,其他进程就无法打开文件。
解决方案取决于您的需求,但您可以将其更改为FileShare.Read
以禁止其他进程同时在文件中写入,但仍允许他们打开它进行阅读。 / p>
并且,查看您的函数名称,我猜您可以将其替换为File.OpenRead
。
编辑:刚刚注意到你的问题是关于单声道的,我不确定我在这里所说的是否成立。