首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在向aac追加字节时播放aac时出现"file in use“错误

在向aac追加字节时播放aac时出现"file in use“错误
EN

Stack Overflow用户
提问于 2016-09-01 12:56:25
回答 1查看 66关注 0票数 1
代码语言:javascript
复制
var outputfile = "outputfile.aac";     
var fileList = new List<string>
                {
                    "1.aac",
                    "2.aac",
                    "3.aac",
                    "4.aac",
                    "5.aac",
                    "6.aac"
                };

                foreach (var file in fileList)
                {
                    using (var stream = new FileStream(outputfile, FileMode.Append, FileAccess.Write, FileShare.ReadWrite))
                    {
                        var bytes = File.ReadAllBytes(file);
                        stream.Write(bytes, 0, bytes.Length);
                        stream.Flush();
                    }
                }

我尝试将fileList中的aac文件连接到输出文件中。在将文件"3.aac“写入outputfile.aac时,我使用MediaPlayer打开输出文件,然后FileStream返回异常”文件正在使用“,即使FileShare模式为ReadWrite,也意味着其他进程可以对该文件进行读写。那么原因在哪里呢?

但是,在这种情况下,输出文件不会被阻止

代码语言:javascript
复制
Stream s = resp.GetResponseStream();
                    var fs = File.Exists(outputFile) ? new FileStream(outputFile, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)
                        : new FileStream(outputFile, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);

                    byte[] buffer = new byte[4096];
                    while (s.CanRead)
                    {
                        int bytesRead = s.Read(buffer, 0, buffer.Length);
                        fs.Write(buffer, 0, bytesRead);
                    }

P/s:我找到了原因,因为它是aac文件

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-01 13:00:28

当您使用FileShare.ReadWrite时,您允许随后以读或写模式打开文件。

然后,MediaPlayer使用FileShare.Read打开该文件,拒绝您对该文件的写入访问权限。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39262942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档