繁体   English   中英

在C#中读取Stream时出错

[英]Error reading Stream in C#

在我的应用程序中,我试图从文件系统读取流。 这是我的方法:

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 

你能帮助我吗? 非常感谢!

FileShare.None表示如果系统上的其他任何文件在同一文件上打开了文件句柄,则将无法打开流。 这也意味着,只要打开句柄,其他进程将无法打开文件。

解决方案取决于您的需求,但是您可以例如将其更改为FileShare.Read以禁止其他进程与您同时写入文件,但仍允许他们打开文件进行读取。

而且,查看您函数的名称,我想您可以将其替换为File.OpenRead

编辑:刚注意到您的问题是关于单声道,我不确定我在这里说的是否成立。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM