unity使用多线程下载时,删除正在下载的文件时候报如下错误

Wesley13
• 阅读 405

unity使用多线程下载时,删除正在下载的文件时候报如下错误


错误原因:

下面代码  ,正在操作下载文件流

   fs = File.OpenWrite(filePath);

而此时,你又想使用下面代码,删除正在下载的文件

 File.Delete(vd.localSavedPath);

这样就出现文章开始时的截图错误


我个人尝试的解决思路是:

1 删除前,确保下载文件暂停,并且关掉所有流

2 关流这个动作估计是异步,关流代码执行完后立即删文件还是会报截图错误,估计是这个时候,流还没有关闭

此时可以考虑,把删除文件操作放到携程中,携程开始时,等1秒,给流关闭一个时间


FR:徐海涛(hunk Xu)
QQ技术交流群:386476712

点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
vue+axios下载pdf文件流
项目中用到流文件下载的需求,之前使用的方法一直都没问题,但是这次就是下载不下来,查了多种方法终于解决了,方式如下://下载文件downLoadFile(e){letide.target.dataset.id;letnamee.target.dataset.name;
Easter79 Easter79
3年前
springmvc之下载文件
springMVC下载文件在开发web项目时,我们经常会遇到下载文件的情况。我们下来看下面这个代码:publicvoiddownLoad(HttpServletResponseresponse,Stringfilename){if(filenull||!file.exis
皕杰报表(关于如何上传和下载文件到数据库)
在皕杰报表中文件是否可以上传到数据库中,当然是可以的。然后在附件上传和下载中,设置相对路径或绝对路径,文件名称,文件类型和上传的空值条件(上传的大小,默认限制是5120kb和满足什么条件时上传)。在下载中选择相对路径或绝对路径,填写下载链接名称和下载文件名称。填报操作时有三个函数:filedata、filename、filepath。filedata:获取文
Stella981 Stella981
3年前
Python清空指定文件夹下所有文件的方法
From:https://blog.csdn.net/baoxiao7872/article/details/90340163其他的总结1、remove()同unlink()的功能是一样的在Windows系统中,删除一个正在使用的文件,将抛出异常。在Unix中,目录表中的记录被删除,但文件的存储还在。使用
沸腾的木马 沸腾的木马
1年前
关于dorker安装的wordpress无法上传主题和插件的解决办法
首先,容器里居然没有php.ini这个文件。第二,容器里的配置文件无法编辑解决办法在php官网下载php.ini这个文件,修改后通过主机copy到容器里1、要查找容器的名称或ID,可以使用以下命令:dockerps这将显示正在运行的容器的列表,类似于以下示
Stella981 Stella981
3年前
Linux上传下载
     使用Linux系统时一般会借助第三方工具,例如Xshell、SecureCRT等,常常会遇到需要在服务器上与本地机子上做上传下载的文件交互。交互通信有很多协议,下面描述下我常用的Zmodem协议。该协议是针对modem的一种错误校验协议,是Xmodem文件传输协议的一种增强形式,不仅能传输更大的数据,而且错误率更小,并且支持断点
Stella981 Stella981
3年前
Linux删除用户
删除用户\userdelabc该删除操作将用户删除但保留用户的home文件夹和邮件文件夹。并且当用户abc正在登录的时候,删除操作将失败,如下:\userdelabcuserdel:userabciscurrentlyloggedin如果要删除用户同时删除用户的home文件夹以及邮件文件夹则执行:\user
Stella981 Stella981
3年前
FastDFS提供的API简介
 FastDFS提供的API及简要说明如下:  upload:上传普通文件,包括主文件  upload\_appender:上传appender类型文件,后续可以对其进行append、modify和truncate操作  upload\_slave:上传从文件  download:下载文件  delete:删除文件
Easter79 Easter79
3年前
SpringMVC 文件下载时 浏览器不能正确显示另存的文件名
问题:通过打印输出流的方式把文件下载到本地,但是在firebox中下载的文件不显示文件的文件名,造成文件不能直接打开,其他浏览器可以直接打开.原因:主要是文件名称中有汉字而没有转码造成firebox浏览器不能正确显示另存的文件名解决方案://提供如下工具类将 文件名编码 就可以啦public s
Stella981 Stella981
3年前
PostgreSQL drop database 显示会话没有关闭 [已解决]
错误重现有时候需要删除某个数据库时,会报如下错误,显示有一个连接正在使用数据库,无法删除ERROR:database"pilot"isbeingaccessedbyotherusersDETAIL:Thereis1othersessionusingthedatabase.解决方法