运行在Windows沙盒中会时不时出现“文件写入失败”错误

文件写入失败: XXXX.jpg [Cannot create a file when that file already exists]
文件写入失败: XXXX.jpg [The system cannot find the file specified]

程序主体运行在Windows SandBox中,C:\Program Files\BitComet、C:\Users\WDAGUtilityAccount\AppData\Roaming\BitComet路径都是做的只读映射,C:\BitComet做读写映射。

发现在下载某些种子尤其是含有图片文件时会时不时出现“文件写入失败”错误而导致任务停止。一次性下载完毕中间没有暂停的化出现的机率就很小,几乎没有。重新检查完整性也不起作用。取消问题文件的下载或者取消其他文件只单独下载问题文件有几率完成,但是复选全部文件的时候其他文件往往也从100%变成了未完成。

似乎将出问题的文件删除再还原就可以继续下载了。难道是磁盘有坏道了?

因为在另两台直接访问磁盘的专职下载机上从未见过此类问题,所以一开始怀疑的是Windows沙盒文件机制的问题。

可能是只读映射的问题
程序配置文件在下载过程中应该需要写入的

前阵子把镜像卷改成了存储池双向镜像空间再映射进沙盒以后发现BitComet下载直接报告参数错误,连沙盒本地目录下载后移动到存储空间映射成的目录也是提示参数错误。但它的AppData配置文件却能好好地保存下来。结合前述问题极大概率发生在多个小文件处在同一个下载块中时更容易出现问题,感觉是BitComet磁盘加速的问题。

那个是我帖子写错了。AppData目录做的是可写映射。前阵子因为磁盘管理组织的镜像卷经常出现重新同步的问题,于是改成了存储池的双向镜像存储空间,结果发现BitComet下载直接报参数错误,同样配置文件却正常修改了。

楼上正解,下载过程是需要实时写入配置文件的,只读的话肯定会报错的