文件分片后怎么重组

问题描述

这文件分片后,怎么重组啊下面写法测试有问题啊文件变为0字节。求代码...大神帮忙下//保存一个分片到磁盘上file=Path.Combine(dir,name+"_"+index);data.SaveAs(file);//如果已经是最后一个分片,组合//当然你也可以用其它方法比如接收每个分片时直接写到最终文件的相应位置上,但要控制好并发防止文件锁冲突if(index==total){file=Path.Combine(dir,name);//byte[]bytes=null;using(FileStreamfs=newFileStream(file,FileMode.OpenOrCreate)){for(inti=1;i<=total;++i){stringpart=Path.Combine(dir,name+"_"+i);//bytes=System.IO.File.ReadAllBytes(part);//fs.Write(bytes,0,bytes.Length);//bytes=null;System.IO.File.Delete(part);fs.Close();}}}

解决方案

解决方案二:
文件读写操作都给注释掉了,怎么可能会有内容
解决方案三:
谢谢啊早上测试了全部代码不行。现在又可以了,见鬼。估计是不是文件锁的问题。请问下保存文件的路径和分片的路径分开比较好对吗还有如果文件只有10M有必要切吗感觉多此一举啊10M公司内网1秒就上去了。
解决方案四:
看错了,还是不行啊~~~~没有合在一起。
解决方案五:
上传10多的,以5M进行分片,然后就变成这样子了如图,合不起来,代码大神帮忙修改下。
解决方案六:
引用3楼wisdom1的回复:

看错了,还是不行啊~~~~没有合在一起。

fs.Close();从循环里移到using里
解决方案七:
分片后效果,怎么把它合起来,上面那个程序,合第一部分就停住了。
解决方案八:
file=Path.Combine(dir,name);byte[]bytes=null;using(FileStreamfs=newFileStream(file,FileMode.OpenOrCreate)){for(inti=1;i<=total;++i){stringpart=Path.Combine(dir,name+"_"+i);bytes=System.IO.File.ReadAllBytes(part);fs.Write(bytes,0,bytes.Length);bytes=null;System.IO.File.Delete(part);}fs.Close();}

信心满满哎以为可以,测试2回了,还是和图1一样的,组合第一部分后,估计就报错停住了。
解决方案九:
你write的每次都是当前的bytes会整合么?每次都从0开始……,要么把多个文件流都读到bytes,然后在write,要么就计算好每次wirte后的长度,下次write从上次write后的长度开始
解决方案十:
可以了去掉这个就可了bytes=null;原因不知道,代码本意是想清空字节
解决方案十一:
好吧,上面的理解错了,那个0是从bytes开始位置写入,但是我测试的bytes=null;没有影响啊,我用了两个txt测试的,可以把两个文件的文字合到一个里面去
解决方案十二:
引用10楼u010070496的回复:

好吧,上面的理解错了,那个0是从bytes开始位置写入,但是我测试的bytes=null;没有影响啊,我用了两个txt测试的,可以把两个文件的文字合到一个里面去

是啊bytes=null;不用去掉,但是感觉不稳定啊我本地测试,一时可以,一时又不可以。搞不明白啥子问题。有时候跟进去又可以,这句代码怎么理解:fs.Write(bytes,0,bytes.Length);。他怎么可以每次从0开始写入呢合并文件什么原理
解决方案十三:
一个非常奇怪的现象,我断定进去调试是正常分片,例如:分片3份,A_1,A_2,A_3.但是,如果不断点,他只分到A_1,A_3.,中间那份丢了。为什么断点就没问题呢我晕死了~~~难怪合拼的时候肯定报错了

时间: 2024-11-02 05:29:04

文件分片后怎么重组的相关文章

struts2.0-struts2 将文件压缩后 下载却不成功

问题描述 struts2 将文件压缩后 下载却不成功 我用struts2 做了个文件下载功能. 对于未压缩过的文件 一下子就下完了.. 用ZipOutputStream做成压缩包后,只能下载一部分,然后就下不动了.. 这是什么问题..不压缩能下得动,压缩完就不行.是struts2 对下载压缩支持不好吗? inputStream = new FileInputStream(new File("E:work_myeclipse.metadata.me_tcatwebapps eport_manage

PHP读取文件内容后清空文件示例代码

 这篇文章主要介绍了PHP读取文件内容后如何清空文件,需要的朋友可以参考下 代码如下: $fh = fopen($path, "r+");    if( flock($fh, LOCK_EX) ){//加写锁  $old_content=json_decode(fread($fh,filesize($path)),true);    $old_content=$old_content.$new_content;  ftruncate($fh,0); // 将文件截断到给定的长度  re

win8系统下hosts文件修改后无法保存的解决方法

  Hosts文件即hosts. Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析.这是一个非常特别的软件,所以在访问一些国外网站时往往要求修改hosts,但有用户反映修改后根本保存不了,所以今天小编就为

file控件选择上传文件确定后触发的js事件是哪个

  这篇文章主要介绍了file控件选择上传文件确定后触发了什么js事件,需要的朋友可以参考下 一直以来纠结于这个问题.今天闲来上网搜索了一下这个问题.终于知道答案.是onchange事件.经过本人测试,可用.还有说onpropertychange也可以.经chrome浏览器测试,无效果.不知道是什么原因.  

U盘文件删除后怎么恢复

  很多时候,我们会不小心将U盘里面的文件删除掉.那么, U盘文件删除后怎么恢复呢?今天,小编就来跟大家分享U盘文件删除后恢复方法,希望能对大家有所帮助. 一.删除文件将进入回收站 我们在快盘中删除的文件或文件夹(如图1),都会被直接送到快盘的回收站中,后面我们将会在回收站中看到并可以恢复. 二.进入回收站查找文件 如果我们删除了文件或文件夹,可以打开http://www.kuaipan.cn,输入帐号和密码登录.之后,单击左侧下方的"回收站"按钮,就可以看到我们所有删除的文件.如果找

字符串-网页上传文件时怎么把文件加密后上传

问题描述 网页上传文件时怎么把文件加密后上传 我想在html页面选择一个上传文件,在js获得这个文件的信息,然后对这个文件进行对称加密后再上传.初步想法是把文件是以数据流发到后台再生成一个完整文件的,但怎么获得这个文件的数据流?另一个想法是把先把文件转成字符串,然后加密,再把字符串生成文件2,然后上传,但怎样才能转成字符串并且把加密的字符串转回文件?请大神解答,感激不尽 解决方案 在Web架构中如果要保密, 最简单最安全的方法是使用HTTPS协议. 用js获取文件数据流是可以的, 但需要新版浏览

这个文件运行后,浏览器就卡了,是什么原因?

问题描述 这个文件运行后,浏览器就卡了,是什么原因? <!DOCTYPE html public ""-//W3C//DTD XHTML 1.0 Strict //EN"" http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd""><html xmlns=""http://www.w3.org/1999/xhtml""><head&

jsp文件连接数据库后能添加数据,但是不能修改和删除

问题描述 jsp文件连接数据库后能添加数据,但是不能修改和删除 代码如下: 数据库操作的代码: <%@ page language="java" import="java.util.*" contentType="text/html;charset=GB2312"%> <%@ page import="java.sql.*" %> 新闻编辑 <% request.setCharacterEncod

php文件打开后出现中文乱码有哪些原因?

问题描述 php文件打开后出现中文乱码有哪些原因? 我用sublime,设置了UTF-8,前几天刚装好还没事,昨晚写了个文件打开后发现中文全乱码了,有没有可能是插件的问题? 解决方案 哎呀,把问题给搞混了,这个问题主要的原因时windows的编码问题,用iconv函数解决 解决方案二: php文件本身的编码与网页的编码应匹配 a. 如果欲使用gb2312编码,那么php要输出头:header("Content-Type: text/html;charset=gb2312"),静态页面添